对于在HTML界面要访问servlet,路径必须要写到/工程名/servlet/servlet类的名称 ---- (路径中的servlet不一定有,需要看具体建立的过程中是否含有这样的路径)
对于在本来的后台访问资源路径时,路径名写到工程的下一级目录即可 例如:/WEB-INF/jsp/index.jsp
(1)请求转发:地址栏不会改变,所以在用户刷新的时候会再次访问服务器,执行请求,重复添加。
http://localhost:8080/ZHEDU/servlet/UserServlet?servletMethod=add&name=aaaa&nickname=aaaa&password=aaaa&header=aaaa // 服务器请求转发 request.getRequestDispatcher("/servlet/UserServlet?servletMethod=userlist").forward(request, response);(2)请求重定向:地址栏发生改变,刷新以后不会再次执行之前的操作,会执行跳转以后的操作
http://localhost:8080/ZHEDU/servlet/UserServlet?servletMethod=userlist // 客户端请求重定向 response.sendRedirect(request.getContextPath()+"/servlet/UserServlet?servletMethod=userlist"); // 注意一点:request.getContextPath(),就是相当于/WEB-INF#### 4jsp传输乱码问题的解决(服务器配置文件的解决办法)
request.setCharacterEncoding(“utf-8”); response.setCharacterEncoding(“utf-8”);
String name = request.getParameter(“name”);
name = new String(name.getBytes(“ios-8859-1”),“utf-8”);
以上的解决方案都是不可以根治的,需要根治的话,就必须去更改tomcat的配置文件。
在tomcat7的conf文件夹中有server.xml文件,打开以后,在指定位置添加相关配置。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" userBodyEncodingForURI="true" URIEncoding="UTF-8"/> // userBodyEncodingForURI="true" URIEncoding="UTF-8" 这两句为添加的代码