SERVLET 学习笔记
来源:互联网 发布:淘宝已购买的宝贝 编辑:程序博客网 时间:2024/06/09 23:57
一、Servlet基本定义
Servlet是服务器端上面运行的一段小的java程序,一个servlet就是一个简答的java类。通常servlet都是通过请求和返回的模式来被访问的,客户端通过resuest请求,servlet则通过response来返回需要的内容。
二、Tomcat容器等级
Tomcat容器等级分为四个等级,由内向外分别是:context容器àSERVLET容器àHOST(主机)容器àENGINE(引擎)容器。其中,CONTEXT容器,一个CONTEXT容器对应着一个WEB工程,而CONTEXT容器又是被SERVLET容器管理的。
三、手动编写第一个SERVLET
手动编写自己servlet需要以下三个步骤:
1、 继承自HTTPServlet
2、 重写doGET()方法,或者是doPost()方法,具体要根据客户端的请求的action的方式来确定实现。
3、 不要忘记在web.xml文件中注册自己编写的servlet类。
Servlet的继承关系如下:
编写自己的第一个servlet如下:MyServlet.Java
package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;/** * Servlet implementation class MyServlet */public class MyServlet extends HttpServlet { private static final long serialVersionUID = 1L; private static final Logger LOGGER = Logger.getLogger(MyServlet.class); /** * @see HttpServlet#HttpServlet() */ public MyServlet() { System.out.println("装载当前的 servlet"); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { LOGGER.info("测试我的第一个servlet"); PrintWriter out = response.getWriter(); response.setContentType("text/html;charset=utf-8;"); out.println("<strong>get方式访问我的servlet成功!!</strong>"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { LOGGER.info("测试我的第一个servlet"); PrintWriter out = response.getWriter(); response.setContentType("text/html;charset=utf-8;"); out.println("<strong>post方式访问我的servlet成功!!</strong>"); } @Override public void init() throws ServletException { // TODO Auto-generated method stub LOGGER.info("当前的 servlet init"); System.out.println("当前的 servlet init"); }}
Web.xml中的配置如下:
<servlet> <description>第一个测试的servlet</description> <display-name>MyServlet</display-name> <servlet-name>MyServlet</servlet-name> <servlet-class>servlet.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyServlet</url-pattern> </servlet-mapping>
JSP中的访问方式:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>servlet测试</title></head><body> <h1>我的第一个SERVLET程序</h1> <hr> <a href="MyServlet">get 方式请求servlet</a> <form action="MyServlet" method="post"> <input type="submit" value="post方式请求 servlet"> </form></body></html>
四、TOMCAT中装载SERVLET方式:
A、 Servlet容器自动装载servlet,这个需要在web.xml中配置注册servlet的时候,加上load-on-startup的配置,配置如下:
<servlet> <description>第一个测试的servlet</description> <display-name>MyServlet</display-name> <servlet-name>MyServlet</servlet-name> <load-on-startup>1</load-on-startup> <servlet-class>servlet.MyServlet</servlet-class> </servlet>其中的数字越小,加载的优先级就会越高
B、 Client首次向servlet请求,tomcat容器会加载servlet
C、 Servlet的类文件被修改更新之后,tomcat容器会重新加载servlet
五、Servlet于JSP的九大内置对象
先有的servlet,之后才有的JSP,jsp的前身就是servlet
六、SERVLET的跳转路径
Servlet的跳转路径分为:绝对路径和相对路径两种方式
6.1 访问servlet的路径区分
绝对路径:<a href="<%=request.getContextPath()%>/aaa/MyServlet">get 方式请求servlet</a>必须要加上项目的根目录相对路径:<a href="aaa/MyServlet">get 方式请求servlet</a>最前面不要“/”,此时加上斜线,表示是服务器的根目录,反而找不到对应的servlet。 切记:在 <url-pattern>/MyServlet</url-pattern>中配置路径一定是以“/”开头的,表示的是项目的根目录。
6.2 servlet 内部跳转的路径区分
1.请求重定向:redirect url会改变 相当于客户端重新请求response.sendRedirect(request.getContextPath() + "/test.jsp");2.服务器内部跳转:forward url不会改变 request.getRequestDispatcher("/test.jsp").forward(request, response);
- Servlet学习笔记 Servlet原理
- 《Servlet学习笔记》Servlet 简介
- Servlet学习笔记
- servlet学习笔记
- Java Servlet学习笔记
- Servlet学习笔记
- servlet 学习笔记(1)
- servlet 学习笔记(2)
- Servlet学习笔记
- Servlet学习笔记
- JSP/Servlet学习笔记
- servlet学习笔记
- Servlet学习笔记
- SERVLET学习笔记
- servlet学习笔记
- Servlet 学习笔记
- servlet学习笔记
- servlet学习笔记
- 第八周项目1—数组做数据成员(工资类 数组 文件)
- DNS 查找失败,因此找不到 ******* 的服务器
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]
- Android-多种进度条的使用方法
- linux grep命令详解
- SERVLET 学习笔记
- VIM_Pulgin
- 动态规划之n个元素出栈顺序种数
- update select 语句和merge into语句
- Visual Studio中使用正则表达式快速统计项目总共代码行数
- [转载]数据驱动精准化营销在大众点评的实践
- Java中的CopyOnWrite容器
- shell判断文件是否存在
- DIALOG