JAVA遇见HTML——Servlet(1)
来源:互联网 发布:可以用淘宝贷的口子 编辑:程序博客网 时间:2024/06/05 04:00
servlet基础
- 什么是Servlet
- Tomcat容器等级
- 手工编写第一个Servlet
- 使用MyEclipse编写Servlet
- Servlet生命周期
- Servlet获取九大内置对象
- Servlet与表单
- Servlet路径跳转
- 阶段项目
什么是Servlet
Servlet是在服务器上运行的小程序。一个Servle就是一个Java类,并且可以通过“请求—响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。
Tomcat容器等级
Tomcat的容器分为四个等级,Servlet的容器管理Context容器,一个Context对应一个Web工程。
手工编写第一个Servlet
- 继承HttpServlet
- 重写doGet()或者doPost()方法
- 在web.xml中注册Servlet
//继承于HttpServletpublic class HelloServlet extends HttpServlet { /** * 自动序列化 */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("处理Get()请求....."); PrintWriter out =response.getWriter(); //指定输出的文件类型 response.setContentType("text/html;charset=utf-8"); out.println("<strong>Hello Servlet!</strong><br>"); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("处理doPost()请求....."); PrintWriter out =response.getWriter(); //指定输出的文件类型 response.setContentType("text/html;charset=utf-8"); out.println("<strong>Hello Servlet!</strong><br>"); }}
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/servlet/HelloServlet</url-pattern> </servlet-mapping>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-- <link rel="stylesheet" type="text/css" href="styles.css"> --></head><body> <h1>第一个servlet小程序</h1> <hr> <a href="servlet/HelloServlet">get方式请求HelloServlet</a> <form action="servlet/HelloServlet" method="post"> <input type="submit" value="doPost方式请求HelloServlet"> </form></body></html>
Servlet生命周期
servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。
- 初始化阶段,调用init(ServletConfig)方法。
- 响应客户请求阶段,调用service()方法。由service()方法根据提交方式选择执行doGet()或者doPost()方法。
- 终止阶段,调用destroy()方法。
- 在下列时刻Servlet容器装载Servlet
- Servlet容器启动时自动装载某些Servlet,实现它只需要在Web.xml文件中的
<servlet></servlet>
之间添加如下代码:<load-on-startup>1</load-on-startup>
数字越小表示优先级越高。 - 在Servlet容器启动后,客户首次向Servlet发送请求。
Servlet类文件被更新后,重新装载Servlet。
Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
public class ServletTestOne extends HttpServlet { /** * 自动序列化 */ private static final long serialVersionUID = 1L; /** * Constructor of the object. */ public ServletTestOne() { System.out.println("执行了TestOne的构造方法...."); } /** * Destruction of the servlet. <br> */ public void destroy() { System.out.println("执行了TestOne的destroy方法...."); } /** * The doGet method of the servlet. <br> */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("TestOne的执行了doGet()....."); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.println("<h1>你好,我是ServletTestOne</h1>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * The doPost method of the servlet. <br> */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("TestOne的执行了doPost()....."); this.doPost(request, response); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { System.out.println("执行了TestOne的初始化方法....."); }}
2.在Servlet容器启动后,客户首次向Servlet发送请求。
信息: Server startup in 549 ms执行了TestOne的构造方法....执行了TestOne的初始化方法.....TestOne的执行了doGet().....2017-6-5 18:09:59 org.apache.coyote.http11.Http11Protocol pause信息: Pausing Coyote HTTP/1.1 on http-80802017-6-5 18:10:00 org.apache.catalina.core.StandardService stop信息: Stopping service Catalina执行了TestOne的destroy方法....2017-6-5 18:10:01 org.apache.coyote.http11.Http11Protocol destroy信息: Stopping Coyote HTTP/1.1 on http-8080
1.Servlet容器启动时自动装载某些Servlet
<servlet> <servlet-name>ServletTestOne</servlet-name> <servlet-class>servlet.ServletTestOne</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>ServletTestTwo</servlet-name> <servlet-class>servlet.ServletTestTwo</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
信息: Starting Servlet Engine: Apache Tomcat/6.0.13执行了TestTwo的构造方法....执行了TestTwo的初始化方法.....执行了TestOne的构造方法....执行了TestOne的初始化方法.....
3.Servlet类文件被更新后,重新装载Servlet
Servlet获取九大内置对象
阅读全文
0 0
- JAVA遇见HTML——Servlet(1)
- Java遇见Html-------servlet篇
- 慕课网 JAVA遇见HTML——Servlet篇 应用mvc架构(Model2)实现
- 慕课网 Java遇见html-servlet篇
- 当Java遇见了Html--Servlet篇
- JAVA遇见HTML——tomcat篇
- JAVA遇见HTML——JSP篇 学习笔记
- JAVA 遇见HTML --------JSP篇(1)
- Java遇见HTML——JSP篇之JSP基础语法
- 遇见Servlet
- java遇见html---jsp(2)
- JAVA遇见HTML-JSP Web简介
- 慕课网 JAVA遇见HTML——JSP篇 阶段项目总结 model1模型实现商品浏览记录
- 燕姿——《遇见》
- 遇见——Git
- 当Java遇见了Html--Jsp……
- 当Java遇见了Html--Jsp详解篇
- 我的2016—遇见自己,遇见未来
- 工程中编写自己的makefile---5 在实例2中使用库文件
- Spring@Autowired注解与省去get和set方法,对注解Autowired放在setter方法上的情况
- Android Inflate 的使用
- ffmpeg截图
- 【前端插件】表单验证(结果绑定按钮可用状态)
- JAVA遇见HTML——Servlet(1)
- CNN中各层图像大小的计算
- Oracle:表名、字段名、constraint名的长度有限制
- Android USB Host与HID通讯
- linux 搜狗输入法问题
- 字典树(trie树)、后缀树
- C++中析构函数和构造函数
- android权限管理
- linux之cut用法