day14---jsp基础和常见问题

    xiaoxiao2023-11-16  153

    1.对于路径的访问

    对于在HTML界面要访问servlet,路径必须要写到/工程名/servlet/servlet类的名称 ---- (路径中的servlet不一定有,需要看具体建立的过程中是否含有这样的路径)

    对于在本来的后台访问资源路径时,路径名写到工程的下一级目录即可 例如:/WEB-INF/jsp/index.jsp

    2.关于提交给servlet的表单书写

    <form action="/ZHEDU/servlet/UserServlet"> <!-- 下面的input是为给USerServlet后边添加传递时的参数,所以特意添加的 如果不添加,而是直接把参数写到后边,会出现一个情况:就是在提交的时候, 表单的元素会替换掉原本UserServlet后边的servletMethod= --> <input type="hidden" name="servletMethod" value="add"> <table border=1 cellspacing = 0 cellpadding = 0 width="30%"> <tbody> <tr> <th>姓名:</th> <td><input type="text" name="name"></td> </tr> <tr>

    3.服务器请求转发和客户端请求重定向

    (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" 这两句为添加的代码
    最新回复(0)