Java Servlet学习笔记(一)

Servlet简介

Servlet是运行在web容器上的小程序。这种程序使用Java编程语言实现。在通信量大的服务器上,Servlet的优点在于它们的执行速度快于CGI程序,各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进行,这意味着服务器端处理请求的系统开销明显降低。

Servlet生命周期

服务器收到客户端的请求后:

1.web容器判断相应的Servlet类是否已加载到内存,并创建了该Servlet的实例。如果是,则转到第4步,否则第2步;

2.加载并创建该Servlet类的一个实例对象;

3.调用Servlet实例对象的init()方法;

4.创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应的HttpServletResponse对象,然后调用servlet的service()方法并将这两个对象做为参数传递;

5.web容器被停止或是重启之前,调用Servlet的Destroy()方法消毁实例对象。

所有的servlet需要继承于HttpServlet类,需要重写其doGet和doPost方法。

package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Cart
 */
@WebServlet("/Cart")
public class Cart extends HttpServlet {
	private static final long serialVersionUID = 1L;

	private String action;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public Cart() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		if (request.getParameter("action") != null) {
			this.action = request.getParameter("action");
			if (this.action.equals("add")) {
				this.addToCart(request, response);
			}
			else if (this.action.equals("remove")) {
				this.removeFromCart(request, response);
			}
			else if (this.action.equals("list")) {
			    this.showCart(request, response);
			}
		}
	}

	protected void addToCart(HttpServletRequest request,
			HttpServletResponse response) {
		Integer itemId = Integer.parseInt(request.getParameter("itemId"));
	}

	protected void showCart(HttpServletRequest request,
			HttpServletResponse response) {

	}

	protected void removeFromCart(HttpServletRequest request,
			HttpServletResponse response) {

	}
}

写好一个Servlet类之后,需要在位于WEB-INF目录下的web.xml文件中将其注册。

注册一个servlet需要以下两做代码,第一个是要将servlet类注册到系统中,第二个则是将servlet的方问路径注册到系统中,这里需要注意的是在url-pattern中一定要是以"/"开始,否则会提示404错误。

<servlet>
    <servlet-name>SERVLET NAME</servlet-name>
    <servlet-class>SERVLET CLASS NAME INCLUDED PACKAGE NAME</servlet-class>
<servlet>

<servlet-mapping>
    <servlet-name>SERVLET NAME</servlet-name>
    <url-pattern>/ACCESS PATH</url-pattern>
</servlet-mapping>

PS:WEB-INF目录中存入的是访问受限的文件,如果将默认的index.jsp文件或是其他无需访问控制的jsp文件也放入这个目录,可能会导致该浏览器无法读取该文件内容。

时间: 2024-10-28 11:07:05

Java Servlet学习笔记(一)的相关文章

Java Servlet学习笔记

Java Servlet组件 Java Servlet组件的原理及编程 Java Servlet 的配置和生命周期 Servlet的生命周期:     1,创建servlet对象时,会调用init方法进行初始化     2,任何来自客户端的请求,都会调用service方法服务     3,当servlet销毁之前,会调用destory方法进行销毁 Servlet原理 Servlet: Server服务器  let小型程序 运行在服务器端的小型程序. 请求是以线程的方式访问目标Servlet! S

Java Servlet学习笔记(二)

Java Filter在服务容器启动时就会被加载,其加载顺序与web.xml中注册的顺序一致. Servlet3.0以下,需要使用以下定义在web.xml中注册. <fileter> <filter-name></filter-name> <filter-class></filter-class> <init-param> <param-name></param-name> <param-value>

测试servlet学习笔记

操作方法: 1.新建工程: File-->new-->Java Project-->TestServlet(工程名称)-->Finish. 2.加载servlet-api.jar类包: TestServlet(右键)-->Build Path-->Configure Build Path-->Library -->Add External JAR Selection-->(浏览在tomcat的lib目录下找到servlet-api.jar选中后点击打开

SERVLET 学习笔记

SERVLET 学习笔记 一.Servlet基本定义 Servlet是服务器端上面运行的一段小的java程序,一个servlet就是一个简答的java类.通常servlet都是通过请求和返回的模式来被访问的,客户端通过resuest请求,servlet则通过response来返回需要的内容. 二.Tomcat容器等级 Tomcat容器等级分为四个等级,由内向外分别是:context容器àSERVLET容器àHOST(主机)容器àENGINE(引擎)容器.其中,CONTEXT容器,一个CONTEX

Servlet学习笔记(八)—— 自定义过滤器的编写改进:自定义实现FilterChain

笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,但是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤,最后response过滤,并且中间几项过滤的顺序不能动态改变.所以这里做个改进,实现一个过滤顺序的FilterChain. 多个Filter的执行顺序在这篇博文中得到很仔细的讲解,总结一点,多个过滤器的执行顺序是根据web.xml中不同<filter-mapping>的顺序来先后执行的,比如: <?xml version="1.0"

JavaWeb 后端 &lt;二&gt; 之 Servlet 学习笔记

JavaWeb 后端 <二> 之 Servlet 学习笔记 一.Servlet概述 1.什么是Servlet Servlet是一个运行在服务器端的Java小程序,通过HTTP协议用于接收来自客户端请求,并发出响应. 2.Servlet中的方法 public void service(ServletRequest req,ServletResponse res) throws ServletException,java.io.IOException ServletRequest req:代表着请

Servlet学习笔记(七)—— JSP概述

1.Servlet两个缺陷: ①所有HTML标签必须包在Java字符串中,使得发送HTTP响应十分繁琐: ②所有文本和HTML标签都必须进行硬编码,即使对表示层做极其微小的修改,也需要重新编译. 2.注释: (1)JSP备注:<% %>,不会发送到浏览器,不能嵌套 (2)HTML备注:<!-- -->,不被容器处理,直接发送到浏览器,用途之一是标识JSP页面.在处理带有许多JSP片段的应用程序时,开发者通过查看HTML源代码,可以轻松查出某个HTML代码部分生成了那个JSP页面.

Servlet学习笔记(六)—— 自定义过滤器的编写

Boss今天让我写一个类似BBS留言板的过滤器,要求对字符编码.登录权限.敏感词进行过滤操作. 总体分两模块: 一.过滤器 //Filter.java package lewa; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public interface Filter { public void init(); public void doFilter(ServletRequest reu

java nio学习笔记(一)

位置保留,待用 java nio学习笔记(一),布布扣,bubuko.com