tomcat服务器下
request 继承关系
getRequestURL() | 获取客户端请求时的完整URL |
getRequestURI() | 获取请求行中资源名称部分(项目名称开始) |
getQueryString() | 获取请求行中的参数部分 |
getMethod() | 获取客户端请求方式 get或post |
getProtocol | 获取http版本号 |
getContextPath() | 获取webapp名字 |
获取请求参数 request (重要)
req.getParameter() | 获取指定名称的参数 |
req.getParameterValues() | 获取指定名称参数的值 |
HttpServlet 是一个抽象类
Servlet都有哪些方法?
HttpServlet 类包含 init() 、 destroy() 、service()、GetServletConfig()、GetServletInfo()方法。
其中 init() 和 destroy() 方法是继承的。
service() 方法
service() 方法是 Servlet 的核心
Servlet的路径访问
localhost:8080/tomcat_pro1_war/s01这个是网页的访问路径
其中 tomcat_pro1_war 属于站点 getContextPath()可以获得
/s01 属于tomcat服务器下的servlet 的路径
请求乱码问题
tomcat 8以上 get不会出现中文乱码,post会
在post请求中加入以下代码即可
req.setCharacterEncoding("utf-8");
这个之针对post请求
请求转发问题
req.getPequestDispatcher(" 转发路径 ")。forward(req,resp);
特点:
地址栏不改变,而服务器改变
始终只有一个请求则数据可以共享
@WebServlet("/s03")
public class Sverlet03 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String uname = req.getParameter("uname");
System.out.println("姓名03"+uname);
req.getRequestDispatcher("/s04").forward(req,resp);
}
}
request 的作用域
用在当服务器想在客户端传送数据时,将数据setAttribute到作用域中再利用请求转发即可
方法:
response 继承关系
响应乱码问题
服务端再向客户端响应中文数据时会出现乱码问题
服务器端默认编码 ISO-8859-1
解决办法:
设置服务端和客户端的编码格式
//设置服务器端
resp.setCharacterEncoding("utf-8");
//设置客户端
resp.setHeader("content-type","页面/html;charset=utf-8");
同时这是客户端和服务端编码
resp.setContentType("页面/html;charset=utf-8");
重定向
resp.sendRedirect(路径);