JavaWeb的servlet

本文仅仅是自己的笔记,若有错误谢谢提出

servlet是什么

它是一种用java编写的服务器端程序,返回的是web动态页面。
特点:因为运用多线程,运行效率会很高;因为代码是java,所以移植性很强

servlet的运行过程

https://www.runoob.com/servlet/servlet-intro.html.
1.读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
2.读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
3.处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
4.发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
5.发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

创建servlet时要做的工作

1.要继承父类的方法

编写servlet页面时需要继承相应的类,也就是如下:
servlet <------genericservlet<------httpservlet<------编写的servlet程序
(interface)

2.class文件书写

java包内如何写:在编写servlet的时候,需要调用servlet中的doget和dopost方法,因为是在java包用java写web网页,所以要用PrintWriter获取response.getWriter()返回的值去向服务器传递要书写的网页内容。

3.配置xml

			//在servlet中的代码
		xml(描述符)包内如何写
		xml的配置关乎服务器端能否找到代码的相应位置,并将其编写成web页面
		xml中配置servlet只要包含两个大块和三个小块
	<servlet>
		<servlet-name>any</servlet-name>
		<servlet-class>包名.文件名</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>any</servlet-name>
		<url-pattern>/any</url-pattern>
	</servlet-mapping>
	//any表示非汉字的所有字母与数字
	

servlet的生命周期

	与人的一生一样,servlet也具有生命周期,分别为
		加载
		初始化   init()
		服务		  service()[主要是doGet()与doPost()]
		销毁		  destroy()
		卸载

servlet中服务阶段主要运用的两个方法

doget与dopost方法与表单:
		动态网页的作用大部分与表单有关系,而表单最重要的两个属性之一method就与doGet()、doPost()方法有关;
两种方法的不同之处
		doget()方式可传输的字节数为1024,并且数据是放过url中以key=>value传递的,因此存在安全隐患
		dopost()方法可传输的字节数没有限制,并且传输信息是放在http请求的信息体内,基本上没有安全隐患;
[因为是在网页内运行,所以少不了网页之间的跳转和交互]

页面跳转的方法:客户端与服务器端(区别)

	*[HTML]:url;接受数据类型;接受数据量;安全性;接受数据范围(request,session,application[getServletContext])
		session与application在jsp中是内置对象,但是在servlet中需要方法去调用
		this.getServletContext()等同于application

客户端跳转:response.sendRedirect("url");仅接受ASCⅡ和二进制;接受数据量为1024字节;安全性低,因为传输信息放在url中;仅接受session和application范围的数据
服务器端跳转:requers.getRequestDispatcher("url").forward(request,response);接受任何数据类型的数据;就收数据量没用限制;通过http信息体进行传递数据,安全性高;接受request、session、application范围的数据类型

servlet的三种不同用法:普通的servlet;过滤器;监听器(在xml配置中的配置顺序)

1.过滤器

[Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。]
如何使用:通过创建新的class文件继承Filter接口,并实现其中的doFilter方法,配置适配器,完成过滤器的使用
注意【session需要的是HTTPservletRequest类型的request,所以在过滤器的dofilter方法中,如果调用session的值,就必须将servletrequest转换为httpservletrequest,这里涉及到子类是可以强转并赋值给父类,而无法把父类强转为子类】

2.监听器

[与监听对象、事件源建立联系,获取监听对象、事件源的属性、状态]
监听器的使用方向有两个,一是获取上下文的运行状态,二是获取上下文的属性值

运行状态:
application:继承ServletContextListener

主要方法有contextInitialized()和contextDestroyed()
在服务器开启和关闭时调用两种方法

session:继承HttpSessionListener

主要方法有sessionCreat()、sessionDestroyed()
在浏览器中运行网页时启动

request:继承ServletRequestListener

主要方法有requestInitialized()和requestDestroyed()
在请求发起和结束时启动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值