一,过滤器处理破post乱码
1,创建一个FIlter
2,定义全局 private String encoding; private Map<String,String> params=new HashMap<String,String>();
3,在init()方法中
encoding =fConfig.getInitParameter("encoding");
for(Enumeration e=fConfig.getInitParameterNames();e.hasMoreElements();){
String name=(String)e.nextElement();
String value=fConfig.getInitParameter(name);
params.put(name,value);
}
4,在doFilter()方法中
request.setCharacterEncoding(encoding);
chain.doFilter(request,response);
System.err.println();
5,在destory()方法中
params=null;
encoding=null;
6,web.xml中
<filter>
<filter-name>Filter</filter-name>
<filter-class>包名+Filter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filer>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
二,get请求的乱码
1,在解压Tomcat文件夹-》conf->server.xml-><Connector port="8080" protoc="HTTP11.1 connectTimeout 添加URIEncoding="UTF-8" "
2,Workspace->Servlers->server.xml->和上面相同的位置也添加URIEncoding=“URF-8”
三,复制项目后修改到指定的项目名
复制项目后-》右键新项目-》Properties->Web ProjectSettings->修改成指定的项目名
四,手动添加web.xml文件
右键项目名-》JavaEETools->GenerateDeployment Descriptor Stub
五,从外面导入web项目
右键项目或者空白地方-》import-》Import->General->Existing Project into Workspace->浏览(Browse)加入路径
六,修改项目的jdk版本
1,右键项目-》Properties->project facets->java选择右边的1.7(或其他目标版本)
2,将jdk1.7(或其他目标版本)设置为默认
Window->Preferences->Java->Installed JREs->add选择需要添加的jdk1.7版本位置-》勾选(默认)
七,request中几个获取路径的方法
request.getContextPath();获取项目的名字
request.getScheme();获取http这个协议
request.getServerName();获取IP地址localhost
request.getServerPort();获取端口号8080
八,ClassNotFoundException的解决方式
1,当应用程序试图使用一下方法通过字符串名加载类时,抛出异常:
*class类中的forName()方法
*ClassLoader类中的findSystemClass ()方法
*ClassLoader类中的LoadClass方法
2,造成异常的常见原因
*所需要的支持类库放错了地方,并没有放在类路径(CLASSPATH环境变量)里面
*使用了重复的类,且版本不一致,导致低版本的被优先使用
*类名错了,一般是Class.forName的时候,手工指定了类名的情况
*没有导入纯Java驱动包
九,web.xml路径中配置servlet的作用和@WebServlet注解
1,Servlet 3.0开始支持用@WebServlet注解来代替web.xml里的配置servlet的作用
2,在注解中只需说明url-pattern就可以了,其他的内容注解会自动判断出来,方便了,当然Servlet3.0还是支持用老的web.xml配置的 示例:@WebServlet("/login"),这句话写到login.java的类名声明前
十,为什么eclipse新建的webapp项目class文件都在build文件夹下,而不是在neb-inf里的class文件夹里?
答:这只是eclipse在build这个步骤做的中间工作而已,最后发布时,按照JavaEE标准,一定会发布到web-inf里的classes文件夹里
十一,JavaBean 就是一个java类,建立私有属性,生成get/set方法等
十二,导入一个web项目后出现HttpServletRequest cannot be resolved to a type错误
答:点击项目右击——>选property——>Java Build Path——Add External JREs——找到 servlet-api.把它添加进来就能解决问题。