JSP servlet基础

简述什么是servlet

Servlet就是一个实现了特定接口或者父类的java类。

servlet是在服务器端运行的一个小程序。一个servlet就是一个java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的servlet程序。


tomcat容器等级

tomcat的容器等级分为四个等级,servlet的容器管理context容器,一个context对应一个web工程。

Engine是个引擎容器

HOST是主机容器


实现Servlet三种方案:

01.Servlet接口:5个方法

init(){

//初始化

}

service(){

//处理请求

}

//泥石流摧毁了整个村庄

destory(){

//销毁

}

getServletConfig(){

//获取Servlet配置信息

}

getServletInfo(){

//获取Servlet相关信息,例如版本作者等。

}

5个方法:  init():初始化,只被执行一次

Destory():tomcat关闭的时候执行,释放资源,执行一次

Service():处理客户端请求,并且对客户端请求作出相应

getServletConfig():获取配置

getServletInfo():版本等信息

02.实现GenericServlet抽象类

修改了Servlet类一定要重启服务器,而修改了jsp页面可以不重启

03.实现HttpServlet抽象类

service():调度作用

//如果我们自己的Servlet类继承的是HttpServlet抽象类,那么不用重写父类的service(),service()方法只不过是起到一个调度的作用

doXXX:doPost(HttpServletRequest request,HttpServletResponse response )  doGet()


手工编写servlet程序的步骤

1.继承HttpServlet

2.重写doGet()或者doPost()方法

3.在web.xml中注册Servlet

  • 使用普通的方法对servlet进行注册
  1. <servlet>
  2. <!--servlet的名字-->
  3. <servlet-name>MyServlet</servlet-name>
  4. <!--servlet类的名字(包括完整包名)-->
  5. <servlet-class>MyServlet</servlet-class>
  6. </servlet>
  7. <servlet-mapping>
  8. <!--要与上面的那个名字一一对应-->
  9. <servlet-name>MyServlet</servlet-name>
  10. <!--表示该servlet的访问路径 /表示项目的根目录-->
  11. <url-pattern>/servlet/MyServlet</url-pattern>
  12. </servlet-mapping>
  • JavaEE6及其以上可以使用注释来对servlet进行注册

name为必须,urlPatterns或者value为指定的URL访问地址,也可定义多个URL地址访问

  1. @WebServlet(name = "MyFirstServlet",urlPatterns = "/servlet/MyFirstServlet")

@WebServlet有很多的属性:

asyncSupported 声明servlet是否支持异步操作模式
description servlet的描述
displayName servlet的显示名称
initParams servlet的init参数
name servlet的名称
urlPatterns servlet的访问URL
value servlet的访问URL

在servlet如何拿到Session对象并给里面set数据.

解析:request.getSession().setAttribute(name, value)


init()和destory()以及service()执行次数问题

重点:servlet中的init()和destory()只会被执行一次,客户端每次访问相应的Servlet类,都会调用一次service()


servlet的生命周期

1.初始化阶段,调用init()方法

2.响应客户请求阶段,调用servlet()方法。由servlet()方法根据提交方式选择执行doGet()或者doPost()方法。

3.终止阶段,调用destroy()方法

servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。

在下列时刻servlet容器装在servlet:

1.servlet容器启动时自动装在某些servlet,实现它只需要在web.xml文件中的<Servlet></Servlet>之间添加如下代码:<load-on-startup>1</load-on-startup>数字越小表示优先级越高。

2.在servlet容器启动后,客户端首次向servlet发送请求。

3.servlet类文件被更新后,重新装载servlet。

servlet被装载后,servlet容器创建一个servlet实例并且调用servlet的init()方法进行初始化。在servlet的整个生命周期内,init()方法只被调用一次。


ervlet与九大内置对象

如何在servlet中获取jsp的九大内置对象

JSP对象 如何获取
out response.getWriter方法(类型并不一致,但功能一致)
request service方法中的参数
response service方法中的参数
session request.getSession()方法
application getServletContext()方法
exception Throwable
page this
pageContext PageContext
config getServletConfig方法

如何通过servlet获取jsp表单中的值与如何将值发送给jsp

从servlet获取jsp表单中的值:

  1. //获取单个值的时候
  2. String context=request.getParameter("username");
  3. //获取复选框等多个选址的时候
  4. String[] parameterValues = request.getParameterValues("username");

servlet将值发送给jsp

将内容存储到session中,将内容通过请求转发的方式发送给jsp

示例:

  1. // 将内容存储到session中
  2. request.getSession().setAttribute("a","object");
  3. // 通过请求转发将其发送给jsp页面
  4. request.getRequestDispatcher("index.jsp").forward(request,response);

servlet路径跳转

绝对路径:从根目录来计算 "/"表示服务器的根目录

相对路径:从相对于当前资源来计算

xml中servlet的映射地址必须以"/"开头

在servlet中使用请求重定向的时候,可以使用request.getContextPath方法获取上下文对象后加上目标jsp名字

在servlet中使用服务器内不跳转,可以使用 "/"表示项目的根目录


获取初始化参数

在web.xml中配置servlet时,可以配置一些初始化参数。而在servlet中可以通过ServletConfig接口提供的方法来取得这些参数。

在XML的servlet标签里面设置初始化参数

  1. <servlet>
  2. <servlet-name>GetInitParameterServlet</servlet-name>
  3. <servlet-class>servlet.GetInitParameterServlet</servlet-class>
  4. <!--设置初始化参数-->
  5. <init-param>
  6. <param-name>username</param-name>
  7. <param-value>admin</param-value>
  8. </init-param>
  9. <init-param>
  10. <param-name>password</param-name>
  11. <param-value>123456</param-value>
  12. </init-param>
  13. </servlet>
  14. <servlet-mapping>
  15. <servlet-name>GetInitParameterServlet</servlet-name>
  16. <url-pattern>/servlet/GetInitParameterServlet</url-pattern>
  17. </servlet-mapping>

在servlet中重写init()方法

通过getInitParameter方法获取

  1. @Override
  2. public void init() throws ServletException {
  3. String username = this.getInitParameter("username");
  4. this.setUsername(username);
  5. }

原文地址:https://www.cnblogs.com/SFHa/p/9388788.html

时间: 2024-10-16 19:31:16

JSP servlet基础的相关文章

JSP/Servlet基础语法

相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html http://blog.csdn.net/liaoxiaohua1981/article/details/6761053 http://computer.c.blog.163.com/blog/static/102524482012314537670/ http://ww

jsp servlet基础复习 Part1

jsp和servlet的一些基础知识整理,用于备忘. 一.jsp与servlet的基本关系 1.jsp-->web容器-->servlet-->加载进容器的虚拟机执行-->输出执行结果给浏览器端 在这个过程,所有位于<%%>之外的值,都被认为是out.println()中的内容进行直接输出.详细理解看代码 <html> <% //例子说明:servlet和jsp的关系 boolean b = false; if(b){ %> 这里是内容一 <

JSP SERVLET 基础知识

jsp(java server page)和servlet是JAVA EE规范的两个基本成员,是JAVA WEB开发的重点也是基础知识.JSP本质上也需要编译成SERVLET运行. JSP比较简单,可以理解为在HTML页面中嵌入JAVA代码,或使用各种JSP标签,再辅以各种JAVA BEAN. <!-- JSP声明 --> <%! public String info(){return "Hello jsp";} %> <div> <!-- J

Jsp/Servlet 基础

今天没事情做,就重温下servlet方面的知识,以作记录.在最开始接触J2EE时,也没花太多时间再这块,跟着教学视频,现在都有点淡忘了,不过这块是面试时考官喜欢问到的地方,考察基本功. Servlet Servle是一个特殊的java类,没有main方法,不能独立运行,也就是讲它需要其他容器或者工具来启动.Servlet是运行在客户端处理请求并作出相应的程序.简单来讲,用户若想用使用一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤: 1.编写一个Java类,继承

JSP数据交互(二)和Servlet基础

01.Application原理与应用 01.application对象的作用域范围是整个应用服务,而它在应用中所承担的责任就类似于一个全局变量.只要服务启动,则application对象就会存在. 02.在一个应用中只有一个application,每一个用户都会共享这一个application对象. 03.通过统计网站访问次数来讲解application的用法 02.对象作用域 03.Cookie简介 解析:cookie是Web服务器保存在客户端的一系列文本信息,根据域名和端口号区分是否保存成

Servlet基础

Servlet基础 Jsp的本质即为Servlet,jsp页面部署到web容器中后会被编译为Servlet.Servlet使用输出流输出html标签,开发过程复杂且难以进行设计. Servlet是一个完整的java类,jsp是对Servlet的简化.Servlet中没有jsp的内置对象,jsp内置对象需要Servlet显式创建. 在MVC架构中,Servlet已不再作为视图仅仅作为控制器使用. 这里介绍了Servlet开发中所涉及的基础知识以及局部应用范例,Servlet作为控制器的应用介绍请见

JavaWeb-07(tomcat与web程序结构与Http协议与Servlet基础)

JavaWeb-07 JavaWeb-tomcat与web程序结构与Http协议与Servlet基础 HTTP协议(记住) 1.http协议:规定了客户端和服务端交流时的数据格式 a. WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议. b. HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式. c. HT

Unit01: Servlet基础 、 HTTP协议

Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import

JSP Servlet学习笔记

在面试Java程序员工作时,经常会被问到JSP Servlet中相关的知识.这些知识都是JSP Servlet的基础,这篇文章主要梳理一下JSP Servlet比较基础但是又比较重要的知识. 1 service方法调用过程 在Servlet接口中有一个service方法,这个方法不是有人手动的调动,而是在运行时由tomcat自动调用的.GenericServlet抽象类实现了Servlet接口,当然它也重写了service方法,但是它也没有具体实现.到了HttpServlet类中,service