1.Servlet定义
Java Servlet或简称Servlet是在某些Web或应用程序服务器上运行的程序。
它们充当来自Web浏览器或HTTP客户端的入站请求与HTTP服务器上存在的应用程序或数据库之间的中间层。
2.为什么使用Servlet
普通的JSP中,java代码和html代码在一个页面,进行分离
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%request.setAttribute("name","zhangsanfeng");%>
<%=request.getAttribute("name")%>
</body>
</html>
3.分离的优势
jsp负责显示,servlet负责控制
4.如何分离(企业)
(1)servlet(包名)/HelloServlet(servlet名)
首先在工程中在src路径下创建一个servlet(包名)/HelloServlet(servlet名),servlet是一个已有选项,不是普通文件夹,在里面创建一个文件,一般在Servlet前面添加名字,如HelloServlet
(2)web.xml
在web文件夹的WEB-INF中的web.xml中添加
<servlet>
<servlet-name>Demo01Servlet</servlet-name>//文件名
<servlet-class>servlet211016.Demo01Servlet</servlet-class>//包名.文件名
</servlet>
<servlet-mapping>
<servlet-name>Demo01Servlet</servlet-name>//文件名
<url-pattern>/Demo01Servlet</url-pattern>// /文件名
</servlet-mapping>
servlet中的name和mapping中的name保持一致
包名.文件名不能错
mapping中的路径可以自定义,一般都相同
(3)HelloServlet(servlet名)
将原来的两个方法,删去下面的那个,上面的方法名字改为service
在文件名中写入代码
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//绑定数据等代码
request.setAttribute("name","dilireba");
request.getRequestDispatcher("index.jsp").forward(request,response);
}
(4)jsp
在要运行的jsp文件中添加代码:$(name)
(5)运行:
运行tomcat:在浏览器输入http://localhost:8080/文件名
5.如何分离2.0(底层)
(1)servlet(包名)/HelloMyServlet(java文件名)
创建HelloMyServlet名字的java文件,implements Servlet,实现所有方法
Servlet生命周期:
1加载和实例化
2初始化:init() 【执行一次】
3服务:service() 【反复执行】
4销毁:destory() 【执行一次】
(2)web.xml
在web文件夹的WEB-INF中的web.xml中添加
<servlet>
<servlet-name>HelloMyServlet</servlet-name>//文件名
<servlet-class>servlet211016.HelloMyServlet</servlet-class>//包名.文件名
</servlet>
<servlet-mapping>
<servlet-name>HelloMyServlet</servlet-name>//文件名
<url-pattern>/HelloMyServlet</url-pattern>// /文件名
</servlet-mapping>
(3)运行:
运行tomcat:在浏览器输入http://localhost:8080/文件名