Servlet基础

要下载javaee的文档才能查询到以下类的功能

GenericServlet:抽象类,只有service方法(无论是get还是post都进这)

HttpServlet:抽象类,继承GenericServlet,开始有了doGet,doPost这些方法

web.xml设置servlet

<servlet>
    <servlet-name>servlet01</servlet-name>
    <!--具体servlet类名-->
    <servlet-class>com.Yuriki.Servlet.UserServlet</servlet-class>
</servlet>
<!--映射-->
<servlet-mapping>
    <!--跟上面的servlet名字一样-->
    <servlet-name>servlet01</servlet-name>
    <!--地址栏访问名称-->
    <url-pattern>/user</url-pattern>
</servlet-mapping>

通过user,找到serlvet01对应的类

java类直接设置servlet

@WebServlet(name = "UserServlet",urlPatterns = "/user")

urlPatterns是String数组类型,可以写多个url

设置字符集编码

request.setCharacterEncoding("UTF-8");       response.setContentType("text/html;charset=utf-8");

获取数据

//获取前端数据
request.getParameter("前端name值");
//获取requst请求域数据
request.getAttribute("userList");
//前端获取数据,要请求转发过来的才能获取,重定向获取不到
${requsetScope.userList}

设置数据

request.setAttribute("userList",userList);
//后端响应给前端ajax的数据
response.getWriter().write(data);

//后端提示前端输出错误提示,并转到add页面去,这4个write里面的语句也可写到一个write里面
PrintWriter writer=response.getWriter();
writer.write("<script>");
writer.write("alert(‘数据添加失败!‘);");
writer.write("window.location.href=‘add.jsp‘");
writer.write("</script>");
writer.flush();
writer.close();

请求转发

request.getRequestDispatcher("easyShow.jsp").forward(request,response);

不会改变地址栏的内容

只有一次请求,request和response能在Servlet与jsp*享

/代表服务器的web站点目录

重定向

response.sendRedirect("请求地址");

会改变地址栏的内容

是两次请求的过程,request和response在Servlet与jsp中是独立的

/代表webapps这个目录

Servlet基础

上一篇:链表系列题目Leetcode


下一篇:@Scope("prototype") bean scope not creating new bean