相信写JavaWeb的小伙伴经常遇到下面这个问题,
本人经过多方查找,发现是配置的原因,就是web.xml中servlet配置不对。
servlet主要配置如下:
<servlet>
<servlet-name>UserAdd</servlet-name>
<servlet-class>frontPageServlet.UserAdd</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserAdd</servlet-name>
<url-pattern>/UserAdd</url-pattern> //不要忘记‘/’
</servlet-mapping>
第二个问题是在更改web.xml文件后,发现eclipse经常未响应,这可能是因为版本不符合的原因(本人用的Tomcat),解决方法为:
去tomcat的webapp目录下找到他的example,然后将WEB-INF里面的web.xml的声明信息拷贝过来。
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
//其它的配置信息
</web-app>
第三个:
在控制台输出正常,但在浏览器乱码,有了response.setContentType("text/html;charset=utf-8");也不行,
最终明白是response.setContentType("text/html;charset=utf-8");一定要放在PrintWriter out = response.getWriter();前面。
第四个:
最近在使用ajax动态传递参数,遇到了两个问题,一个是我在编写data时,总是在后台提示空指针异常,找了好长时间发现,
是name属性的原因,也就是在后台request.getParameter("String"); 这个String一定要是input的name属性值。
第五个:
虽然我用了request.setContentType("text/html;charset=utf-8"),但是在后台输出时依然乱码,解决方法为:
request.setCharacterEncoding("UTF-8");
response.setHeader("Content-type","text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
第4,5更新时间为2019-6-6,祝愿要高考的朋友考个好的成绩。。。
第六个:
在项目中,我用到了layer弹框来实现用户的增删改查,在处理完数据后如何关闭当前弹窗并且返回到主页面成了问题。
解决方法如下:
由于使用了ajax的post提交,所以可在success中做文章:
success : function(data, obj) {
//data 返回的json数据
//obj为当前jQuery对象
alert(data);
var index = parent.layer.getFrameIndex(window.name);
parent.location.href="http://localhost:8080/JavaWeb/WebFront/administrator.jsp";
parent.layer.close(index);
}