自学Java至少需要一年以上的时间才能达到找工作的水平。因为Java自学相对比较难,正确的学习资料的获取、学习中遇到的问题以及如何合理运用学到的知识等都是自学中常会遇到的问题,最主要的还是作为初学者没有人指导带着入门,而且也没有足够的项目经验,所以找工作的时候可能会处处碰壁。千锋教育就有线上免费Java线上公开课。 如果想很快找到一份java的工作,可以考虑报班培训。报班培训最需要四到六个月的时间就可以找到一份不错的工作。而且培训机构有系统的教学体系和经验丰富的讲师,会容易很多。但是要注意的是java属于新兴行业,行业标准不规范,各种培训机构水平参差不齐。有一些不责任的培训机构,虽然给出了就业承诺,但就什么样的“业”却是有很多可能的,而且学员的就业率与老师薪酬挂钩,无论怎样都会让学生就业。所以我们在选择java培训机构的过程中,最好能够进行实地考察,进行细致全面的了解,试听Java课程,看自己能否听懂老师所讲的内容,并且进行多家对比,从中选出适合自己的,那就是最好的。如果想了解更多相关知识,建议到千锋教育了解一下。千锋教育目前在18个城市拥有22个校区,年培养优质人才20000余人,与国内20000余家企业建立人才输送合作关系,院校合作超600所。
上海的生活成本很高,你来上海之前先从招聘网站上找到对口工作了么?另外你说你学习JavaWeb开发,所学的技术达到上海大多数相关公司水平了么?一般做研发比较厉害的城市主要集中在北上广深,上海的优点是机会多,但缺点是对人力资源要求也比较高。
其实JavaWeb包括JavaEE里面的Struts2等技术几年前就已经比较饱和了,除非你有非常丰富的工作经验,否则可以考虑往Android方面传一传,这也只是我的个人意见。
还有就是做开发不一定非要开发,可以考虑先从技术支持做起,这样门槛就会下降不少。做技术支持可以帮助你先熟悉公司的产品,了解当下流行怎样的产品,对你未来还有一定的帮助。
另外就是,上海的机会太多了,如果你有好的机遇,不一定非要做技术的哦!!!
起因是某个同事接到了领导安排下来的一个需求,要在一个Web应用(Java+Tomcat)中,记录用户登录时的IP地址和MAC地址,用于安全审计,于是咨询我如何实现。
第一反应是,这个需求本身是不成立的,根据以往的了解,MAC地址应该是过不了路由器的才对。
以往做开发,都是用engineer的思维:先动手做,遇到问题再解决问题。但这个需求,应当用scientist的思维去思考:首先确定能不能做,然后才是怎么做。
翻查了一些资料,想来证实" 为什么WEB服务器,可以获取到客户端的IP地址,但获取不到MAC地址 ",看着看着才发现,这是个挺大的命题,够写一篇BLOG了。
PS:由于个人对这块内容了解的不够彻底, 本文很可能会有谬误 ,请读者先不要太当真,另外希望平台组的同事给予指证。
我所认为的结论应该是这样的:
下面一步步解释一下。
先从>
jsp中:
request方法
客户端IP: requestgetRemoteAddr()
输出:1921680106
客户端主机名:requestgetRemoteHost()
输出:abc
requestgetHeader("Host")
输出:19216801:8080
Web服务器名字:requestgetServerName()
输出:19216801
服务器监听的端口:requestgetServerPort()
输出:8080
在JSP里,获取客户端的IP地址的方法是:requestgetRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 requestgetRemoteAddr()方法获取的IP地址是:127001或 1921681110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的>
1功能测试11链接测试链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。
链接测试可分为三个方面。
首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。
链接测试可以自动进行,现在已经有许多工具可以采用。
链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
12表单测试当用户给Web应用系统管理员提交信息时,就需要使用表单 *** 作,例如用户注册、登陆、信息提交等。
在这种情况下,我们必须测试提交 *** 作的完整性,以校验提交给服务器的信息的正确性。
例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。
如果使用了默认值,还要检验默认值的正确性。
如果表单只能接受指定的某些值,则也要进行测试。
例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
13Cookies测试Cookies通常用来存储用户信息和用户在某应用系统的 *** 作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。
如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。
测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
14设计语言测试Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。
当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。
除了HTML的版本问题外,不同的脚本语言,例如Ja、JaScript、ActiveX、VBScript或Perl等也要进行验证。
15数据库测试在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。
在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。
在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。
海南北大青鸟>
请贴出相应页面的代码(就是请求user那部分的代码)
根据你贴出的代码,问题应该就出在你的a标签里的${pageContextrequestcontextPath}这里,你这里应该是没有获取到你的项目路径。如果实在定位不到为什么取不到项目路径,你可以使用二楼的方式,自己设定path。
/
@description:
@author chenshiqiang E-mail:csqwyyx@163com
@date 2014年9月7日 下午2:51:50
@version 10
/
package comexamplebaidumap;
import javautilArrayList;
import javautilCollections;
import javautilHashSet;
import javautilList;
import androidappActivity;
import androidosBundle;
import androidsupportv4viewPagerAdapter;
import androidsupportv4viewPagerTabStrip;
import androidsupportv4viewViewPager;
import androidtextEditable;
import androidutilLog;
import androidviewLayoutInflater;
import androidviewView;
import androidviewViewGroup;
import androidwidgetExpandableListView;
import androidwidgetListView;
import combaidumapapimapofflineMKOLSearchRecord;
import combaidumapapimapofflineMKOLUpdateElement;
import combaidumapapimapofflineMKOfflineMap;
import combaidumapapimapofflineMKOfflineMapListener;
import comexamplebaidumapadaptersOfflineExpandableListAdapter;
import comexamplebaidumapadaptersOfflineMapAdapter;
import comexamplebaidumapadaptersOfflineMapManagerAdapter;
import comexamplebaidumapinterfacesOnOfflineItemStatusChangeListener;
import comexamplebaidumapmodelsOfflineMapItem;
import comexamplebaidumaputilsCsqBackgroundTask;
import comexamplebaidumaputilsToastUtil;
import comexamplesystemR;
public class BaiduOfflineMapActivity extends Activity implements MKOfflineMapListener, OnOfflineItemStatusChangeListener
{
// ------------------------ Constants ------------------------
// ------------------------- Fields --------------------------
private ViewPager viewpager;
private PagerTabStrip pagertab;
private MySearchView svDown;
private ListView lvDown;
private MySearchView svAll;
private ExpandableListView lvWholeCountry;
private ListView lvSearchResult;
private List<View> views = new ArrayList<View>(2);
private List<String> titles = new ArrayList<String>(2);
private MKOfflineMap mOffline = null;
private OfflineMapManagerAdapter downAdapter;
private OfflineMapAdapter allSearchAdapter;
private OfflineExpandableListAdapter allCountryAdapter;
private List<OfflineMapItem> itemsDown; // 下载或下载中城市
private List<OfflineMapItem> itemsAll; // 所有城市,与热门城市及下载管理对象相同
private List<OfflineMapItem> itemsProvince;
private List<List<OfflineMapItem>> itemsProvinceCity;
// ----------------------- Constructors ----------------------
// -------- Methods for/from SuperClass/Interfaces -----------
@Override
protected void onCreate(Bundle savedInstanceState)
{
superonCreate(savedInstanceState);
setContentView(Rlayoutactivity_offline_map);
// final String packname = thisgetPackageName();
// PackageInfo packageInfo;
// try
// {
// packageInfo = thisgetPackageManager()getPackageInfo(packname, PackageManagerGET_SIGNATURES);
//
//
// if (code == -00)
// {
// 初始化离线地图管理
mOffline = new MKOfflineMap();
mOfflineinit(this);
initViews();
viewpagersetCurrentItem(1);
// }
// }
// catch (NameNotFoundException e)
// {
// eprintStackTrace();
// }
}
private boolean isResumed = false;
@Override
protected void onResume()
{
superonResume();
if (!isResumed)
{
isResumed = true;
loadData();
}
}
@Override
protected void onDestroy()
{
superonDestroy();
mOfflinedestroy();
}
/
@author chenshiqiang E-mail:csqwyyx@163com
@param type
事件类型: MKOfflineMapTYPE_NEW_OFFLINE, MKOfflineMapTYPE_DOWNLOAD_UPDATE, MKOfflineMapTYPE_VER_UPDATE
@param state
事件状态: 当type为TYPE_NEW_OFFLINE时,表示新安装的离线地图数目 当type为TYPE_DOWNLOAD_UPDATE时,表示更新的城市ID
/
@Override
public void onGetOfflineMapState(int type, int state)
{
switch (type)
{
case MKOfflineMapTYPE_DOWNLOAD_UPDATE:
MKOLUpdateElement update = mOfflinegetUpdateInfo(state);
if (setElement(update, true) != null)
{
if (itemsDown != null && itemsDownsize() > 1)
{
Collectionssort(itemsDown);
}
refreshDownList();
}
else
{
downAdapternotifyDataSetChanged();
}
allSearchAdapternotifyDataSetChanged();
allCountryAdapternotifyDataSetChanged();
break;
case MKOfflineMapTYPE_NEW_OFFLINE:
// 有新离线地图安装
Logd("OfflineDemo", Stringformat("add offlinemap num:%d", state));
break;
case MKOfflineMapTYPE_VER_UPDATE:
// 版本更新提示
break;
}
}
/
百度下载状态改变(暂停--》恢复)居然不回调,所以改变状态时自己得增加接口监听状态改变刷新界面
@author chenshiqiang E-mail:csqwyyx@163com
@param item
有状态改变的item
@param removed
item是否被删除
/
@Override
public void statusChanged(OfflineMapItem item, boolean removed)
{
if (removed)
{
for (int i = itemsDownsize() - 1; i >= 0; i--)
{
OfflineMapItem temp = itemsDownget(i);
if (tempgetCityId() == itemgetCityId())
{
itemsDownremove(i);
}
}
refreshDownList();
}
else
{
loadData();
downAdapternotifyDataSetChanged();
}
allSearchAdapternotifyDataSetChanged();
allCountryAdapternotifyDataSetChanged();
}
// --------------------- Methods public ----------------------
public void toDownloadPage()
{
viewpagersetCurrentItem(0);
}
// --------------------- Methods private ---------------------
private void initViews()
{
// TODO
viewpager = (ViewPager) findViewById(Ridviewpager);
pagertab = (PagerTabStrip) findViewById(Ridpagertab);
LayoutInflater inf = LayoutInflaterfrom(this);
View v1 = infinflate(Rlayoutview_offline_download, null, false);
svDown = (MySearchView) v1findViewById(RidsvDown);
lvDown = (ListView) v1findViewById(RidlvDown);
viewsadd(v1);
View v2 = infinflate(Rlayoutview_offline_countrys, null, false);
svAll = (MySearchView) v2findViewById(RidsvAll);
lvWholeCountry = (ExpandableListView) v2findViewById(RidlvWholeCountry);
lvSearchResult = (ListView) v2findViewById(RidlvSearchResult);
viewsadd(v2);
titlesadd("下载管理");
titlesadd("城市列表");
pagertabsetTabIndicatorColor(0xff00cccc);
pagertabsetDrawFullUnderline(false);
pagertabsetBackgroundColor(0xFF38B0DE);
pagertabsetTextSpacing(50);
viewpagersetOffscreenPageLimit(2);
viewpagersetAdapter(new MyPagerAdapter());
svDownsetSearchListener(new MySearchViewSearchListener()
{
@Override
public void afterTextChanged(Editable text)
{
refreshDownList();
}
@Override
public void search(String text)
{
}
});
svAllsetSearchListener(new MySearchViewSearchListener()
{
@Override
public void afterTextChanged(Editable text)
{
refreshAllSearchList();
}
@Override
public void search(String text)
{
}
});
downAdapter = new OfflineMapManagerAdapter(this, mOffline, this);
lvDownsetAdapter(downAdapter);
allSearchAdapter = new OfflineMapAdapter(this, mOffline, this);
lvSearchResultsetAdapter(allSearchAdapter);
allCountryAdapter = new OfflineExpandableListAdapter(this, mOffline, this);
lvWholeCountrysetAdapter(allCountryAdapter);
lvWholeCountrysetGroupIndicator(null);
}
/
刷新下载列表, 根据搜索关键字及itemsDown 下载管理数量变动时调用
/
private void refreshDownList()
{
String key = svDowngetInputText();
if (key == null || keylength() < 1)
{
downAdaptersetDatas(itemsDown);
}
else
{
List<OfflineMapItem> filterList = new ArrayList<OfflineMapItem>();
if (itemsDown != null && !itemsDownisEmpty())
{
for (OfflineMapItem i : itemsDown)
{
if (igetCityName()contains(key))
{
filterListadd(i);
}
}
}
downAdaptersetDatas(filterList);
}
}
/
刷新所有城市搜索结果
/
private void refreshAllSearchList()
{
String key = svAllgetInputText();
if (key == null || keylength() < 1)
{
lvSearchResultsetVisibility(ViewGONE);
lvWholeCountrysetVisibility(ViewVISIBLE);
allSearchAdaptersetDatas(null);
}
else
{
lvSearchResultsetVisibility(ViewVISIBLE);
lvWholeCountrysetVisibility(ViewGONE);
List<OfflineMapItem> filterList = new ArrayList<OfflineMapItem>();
if (itemsAll != null && !itemsAllisEmpty())
{
for (OfflineMapItem i : itemsAll)
{
if (igetCityName()contains(key))
{
filterListadd(i);
}
}
}
allSearchAdaptersetDatas(filterList);
}
}
private void loadData()
{
new CsqBackgroundTask<Void>(this)
{
@Override
protected Void onRun()
{
// TODO Auto-generated method stub
// 导入离线地图包
// 将从官网下载的离线包解压,把vmp文件夹拷入SD卡根目录下的BaiduMapSdk文件夹内。
// 把网站上下载的文件解压,将\BaiduMap\vmp\l里面的dat_svc文件,拷贝到手机BaiduMapSDK/vmp/h目录下
int num = mOfflineimportOfflineData();
if (num > 0)
{
ToastUtilshowToastInfo(BaiduOfflineMapActivitythis, "成功导入" + num + "个离线包", false);
}
List<MKOLSearchRecord> all = null;
try
{
all = mOfflinegetOfflineCityList();
}
catch (Exception e)
{
eprintStackTrace();
}
if (all == null || allisEmpty())
{
ToastUtilshowToastInfo(BaiduOfflineMapActivitythis, "未获取到离线地图城市数据,可能有其他应用正在使用百度离线地图功能!", false);
return null;
}
List<MKOLSearchRecord> hotCity = mOfflinegetHotCityList();
HashSet<Integer> hotCityIds = new HashSet<Integer>();
if (!hotCityisEmpty())
{
for (MKOLSearchRecord r : hotCity)
{
hotCityIdsadd(rcityID);
}
}
itemsAll = new ArrayList<OfflineMapItem>();
itemsDown = new ArrayList<OfflineMapItem>();
itemsProvince = new ArrayList<OfflineMapItem>();
itemsProvinceCity = new ArrayList<List<OfflineMapItem>>();
// cityType 0:全国;1:省份;2:城市,如果是省份,可以通过childCities得到子城市列表
// 全国概略图、直辖市、港澳 子城市列表
ArrayList<MKOLSearchRecord> childMunicipalities = new ArrayList<MKOLSearchRecord>();
proHotcityName = "热门城市";
proHotchildCities = cs;
List<MKOLUpdateElement> updates = mOfflinegetAllUpdateInfo();
if (updates != null && updatessize() > 0)
{
}
@Override
protected void onResult(Void result)
{
// TODO Auto-generated method stub
refreshDownList();
refreshAllSearchList();
allCountryAdaptersetDatas(itemsProvince, itemsProvinceCity);
}
}execute();
}
以上就是关于自学Java到找到工作需要多久时间全部的内容,包括:自学Java到找到工作需要多久时间、学习Javaweb开发的,一个人来到上海,开发工作找不到,我应该怎么办找那些工作、WEB服务器为什么取不到用户的MAC地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)