Servelt
ServletRequest
1.设置中文
1.post申请
request.setCharacterEncoding("utf-8");
2.get申请
Tomcat8当前,附带Http默认编码方式为UTF-8
2.常见办法
对于参数
//返回String request.getParameter("name"); //返回数组,用于checkbox或List... request.getParameterValues("参数");
对于标头
//返回String request.getHeader(""); //Enumeration<String> getHeaders(String var1); request.getHeaders("");
对于读文件
//返回ServletInputStream getInputStream() throws IOException;应用需为InputStream InputStream stream=request.getInputStream(); //返回BufferedReader getReader() throws IOException; request.getReader();
Servlet3.0之后的get Part()办法
//1.注解设置文件要写入磁盘地位@MultipartConfig(location = "i:/")@WebServlet("/hello")public class HelloServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Part part=request.getPart("photo"); part.write(/*FileName*/); }
3.转发Servlet
a.获得RuquestDispatcher
request.getRequestDispatcher("/*要转发的Servlet*/");
b.应用include()或forward()
//将拎一个Servlet蕴含进来 request.getRequestDispatcher(" ").include(request,response); //接下来的事件转发给另一个Servlet执行 request.getRequestDispatcher(" ").forward(request,response); //Servlet之间须要共享的对象 request.setAttribute(/*name*/,/*value*/); request.getAttribute(/*name*/);
应用重定向
ServeltResponse
1.设置中文
response.setContentType("text/html;charset=UTF-8");
2.罕用办法
对于输入字符
response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title></title>"); out.println("</head>"); out.println("<body>"); out.println("</body>"); out.println("</html>");
对于输入文件给浏览器
response.setContentType("application/pdf"); try (InputStream in= getServletContext().getResourceAsStream("/WEB-INF/test.pdf"); OutputStream stream=response.getOutputStream();){ byte buffer[]=new byte[1024]; int length=-1; while ((length=in.read(buffer))!=-1){ stream.write(buffer,0,length); } }catch (IOException E){ E.printStackTrace(); }
对于重定向
//转发到另一资源,会扭转URI response.sendRedirect("index.html");