【Servlet和JSP学习】

什么是Servlet

Servlet是一个基于Java技术的动态网页技术,运行在服务器端,由Servlet容器管理,用于生成动态的内容,是JSP的前身。
Servlet是平台独立的、符合特定规范的Java类,编写一个Servlet实际上就是按照Servlet规范编写一个Java类。

Servlet不是由用户或程序员直接调用,而是由容器(Tomcat)管理,没有main()方法。
Servlet和jsp的关系
所有的JSP都要先翻译成Servlet,然后编译成class,最后执行。JSP本质上就是一个Servlet。
JSP的执行过程

.jsp--翻译-->.java(Servlet)--编译-->.class---->执行

Servlet的生命周期

Servlet是一个单实例,多线程的程序

【1】类加载
【2】实例化(离不开反射)
【3】初始化(离不开反射)
【4】服务请求(service)(离不开反射)
【5】销毁操作(离不开反射)

类加载的时机

【1】默认的情况是第一次访问servlet的时候进行类加载
【2】<load-on-startup>0</load-on-startup>(当启动服务器时候加载),数字越小加载的实际越往前

Get方式和Post提交方式的区别

【1】get数据的传输是不安全的,post数据传递更加安全
【2】get方式数据传递有大小限制,post传递数据没有限制
【3】get传输的数据速度比较快,post比较慢

乱码处理

此处的乱码指的是前台页面数据的乱码。乱码分为两种(get和post)

【post方式处理】
request.setCharacterEncoding("utf-8");
【get方式处理】
方式1:
	byte[] bytes = str.getBytes("iso-8859-1");
	String cstr = new String(bytes, "utf-8");
方式2:
	在servlet.xml中指定对应的服务器编码
	URIEncoding = "utf-8"

JSP校验意义


【客户端验证】:使用JavaScript验证
好处:降低服务器端负担
不足:不安全,可以跳过,只能进行格式验证,无法进行业务验证(用户名是否已被占用)
【服务器端验证】:使用JSP验证
好处:安全,可以进行格式验证和业务验证
不足:增加了服务器端的负担
【建议】:同时进行服务器端和客户端验证

路径分类

【1】绝对路径(包括协议、IP地址、端口号、需要访问的地址)
	范围:同一个服务器中所有的项目+局域网中服务器中的项目+外网服务器中的项目
【2】根路径(用“/”开始后面紧跟项目的名称+需要访问的路径)
	范围:同一个服务器中所有的项目
	“/”:当前的服务器
【3】相对路径
	
	相对路径1:(相对于本身,../:返回上级,./:同级)
		范围:同一个服务器中所有的项目
		注意:如果有base标签,必须将其去掉
	相对路径2:(相对于base标签)
		范围:当前服务器中的当前项目的所有文件

转发与重定向

【转发】
	1、转发是在服务器内部进行的跳转,转发过程没有产生新的请求
	2、由于转发的整个过程没有产生新的请求,所以可以实现数据的传递
	3、由于整个转发是服务器内部的跳转,所以url地址不会改变
【重定向】
	1、重定向的过程产生了新的请求
	2、由于整个过程产生了新的请求,所以重定向前后的数据不可以共享
	3、重定向的过程对于浏览器来说是可知的,所以地址栏显示的是重定向之后的地址
方面转发重定向
原理一个请求的传递产生新请求
语法实现forward()sendRedirect()
是否共享同一个请求
跳转后显示的url地址跳转前的地址跳转后的地址
跳转的范围当前服务器的当前应用所有服务器的所有应用
“/”路径的含义当前应用当前服务器
是否会导致重复提交
效率
是否经过过滤器否(默认)

JSP的内置对象

内部对象所属类型用途
requestjavax.servlet.HttpServletRequest包含了请求方的信息
responsejavax.servlet.HttpServletResponse封装了对客户端的响应
outjavax.servlet.jsp.JspWriter响应信息流的标准输出
sessionjavax.servlet.Http.HttpSession在同一请求中所产生的session资料,目前只对Http协议有定义
applicationjavax.servlet.ServletContext提交安全信息
configjavax.servlet.ServletConfig提供配置信息
pageContextjavax.servlet.jsp.PageContext提供当前页面属性
pagejavax.lang.Object同于java的this
exceptionjavax.lang.Throwable异常处理

内置对象的介绍

response

当服务器创建request对象时会同时创建用于响应这个客户端的response对象

out对象

是JspWriter类的实例,不是PrintWriter的实例,用来在response对象中写入内容。JspWriter类包含了大部分java.io.PrintWriter类中的方法。不过JspWriter增加了一些专为处理缓存而设计的方法,另外JspWriter类会抛出IOException异常。
最初的JspWriter类对象根据页面是否有缓存来进行不同的实例化操作,可以在page指令中使用buffered='false'属性来轻松关闭缓存。

pageContext

PageContext类的实例,用来代表整个JSP页面,提供对JSP页面所有对象以及命名空间的访问。

四大作用域

page

当前页面,动态包含得不到,静态包含可以得到

request

当前请求,request=page+dispatcher转发+include包含

session

当前会话
结束条件:session.invalidate(),超过MaxInactiveInterval时间,关闭浏览器

application

当前应用程序
结束条件:重启服务器
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ServletJSP学习指南PDF是一本关于JavaWeb开发的指南,旨在帮助学习者深入理解和掌握ServletJSP技术。 Servlet是Java Web开发中常用的一种技术,用于处理Web请求和响应。它基于Java语言,提供了一组用于处理HTTP通信的类和接口。通过Servlet,我们可以实现动态的Web应用程序,与数据库进行交互,处理用户的请求,并生成响应结果。Servlet学习指南将介绍Servlet的工作原理、使用方法和常见的应用场景,帮助学习者快速上手并掌握这项技术。 JSP(Java Server Pages)是一种基于Java的动态网页技术,用于在Web服务器上生成动态网页。与Servlet相比,JSP更加注重于网页的内容展示和页面的设计。它允许开发者在HTML文档中嵌入Java代码,通过特殊的标签和表达式,动态生成所需的HTML内容。JSP学习指南将介绍JSP的语法、标签和表达式的使用,以及JSPServlet之间的关联和数据传递方式,帮助学习者全面了解和掌握这项技术。 ServletJSP学习指南PDF提供了详细的实例代码和案例,让学习者可以通过实践来理解和掌握这两项技术。此外,学习指南还介绍了常见的开发工具和调试技巧,以及一些常见问题的解决方法。通过学习这本指南,学习者可以建立起对ServletJSP技术的整体认识和理解,为进一步的Web开发打下坚实的基础。 综上所述,ServletJSP学习指南PDF是一本宝贵的学习资料,它能够帮助人们系统地学习和掌握ServletJSP技术,在JavaWeb开发中大放异彩。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值