Javaweb Servlet深入概述(二)
来源:互联网 发布:ie如何删除数组元素 编辑:程序博客网 时间:2024/04/28 06:29
概述
Java Web应用程序中所有的请求-响应都是由Servlet来完成的,Servlet是Java Web的核心程序,所有的网址最终交给Servlet来处理 。Servlet并没有main之类的执行方法。当用户访问服务器的时候,Tomcat是通过调用Servlet的某些方法来完成整个过程的。
Servlet工作流程
浏览器提交的请求是遵循HTTP协议的文本。这段文本由服务器也就是Tomcat接收并解析,封装成了HttpServletRequest类型的request对象。所有的HTTP头数据都可以通过request相应的方法查询到。
Tomcat同时把输出流封装为HttpServletResponse类型的对象,通过设置response属性就可以控制输出的内容。然后,Tomcat把request,response作为参数,调用Servlet的相应方法,例如doPost(requrest, response),doGet(request, response)等。
Servlet中主要处理业务逻辑,例如读取数据库、权限检查、业务处理等。Java Web应用程序请求-响应典型过程如图:
Servlet接口
Servlet是一种实现了javax.servlet.Servlet接口的类,接口规定了特定的方法来处理特定的请求。
web.xml
Java Web开发中,常量信息倾向于写在配置文件里面,需求变化时只修改配置文件,不用修改源程序,不用重新编译,维护起来方便
(1)初始化参数(init-param)
配置多个param-name,param-value
Servlet中提供getInitParameter(String param)获取初始化参数值,也可以通过Servlet的getServletConfig()返回ServletConfig然后再获取初始值
(2)上下文参数
Servlet调用getServletConfig().getServletContext.getInitParameter(“type”);
init-param配置在<Servlet>标签内,只能由这个Servlet读取,不是全局参数。上下文参数可以被所有Servlet读取
初始化参数和上下文参数只能配置简单的字符串类型参数
资源注入(@Resourse)、使用JNDI(Java Naming and Directory Interface)获取资源。
Servlet生命周期
Servlet之间的跳转
1.转向
RequestDispatcher dispatcher = request.getRequestDispatcher(“/servlet/MyServlet”);
dispatcher.forword(request, response);
使用forword跳转时,地址栏显示跳转前的Servlet访问地址
在Struct、WebWork等MVC框架中,都是用Servlet处理请求,把结果通过request.setAttribute()放到request中,然后forword到JSP中显示。
2.重定向(Redirect)
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
response.setHeader(“Location”, “http://www.xuetimes.com”);
现在HttpServletResponse封装了,只需调用sendRedirection(String location)就行。
3.自动刷新(Refresh)
response.setHeader(“Refresh”, “1000, URL=http://www.xuetimes.com/index”);
设置1秒后自动跳转的路径。
Servlet与线程安生
多线程并发的读写Servlet类属性会导制数据不同步,并发只读取不写入不存在问题,Servlet只读属性最好定义为final类型。
转载请注明:学时网 » Javaweb Servlet深入概述(二)
- Javaweb Servlet深入概述(二)
- JavaWeb概述(二)
- JavaWeb学习(二):Servlet
- JavaWeb(二)Servlet编写
- JavaWeb中的Servlet概述
- JavaWeb学习笔记(二)---Servlet协议
- JavaWeb学习之路----Servlet(二)
- javaWeb-Servlet之Filter(过滤器二)
- JAVAweb开发技术-------(二)Servlet技术
- JavaWeb 学习笔记(二)Servlet生命周期
- JavaWeb之Servlet(二)HttpServletResponse
- JavaWeb学习心得之Servlet(二)
- JavaWeb--深入Servlet与JSP(运行原理)
- JavaWeb学习二(Servlet入门)
- JavaWeb开发之Servlet(二)
- Servlet之javaweb应用(二)
- Javaweb中JSP和Servlet的概述
- JavaWeb学习笔记-servlet-01-概述
- HTML学习笔记-----简单文本标签举例
- [Phonegap+Sencha Touch] 移动开发17 使用桌面版chrome调试安卓设备上的chrome和webview
- poj 3469 Dual Core CPU (网络流模型)
- xcode6.1调试的时候有时参数都为nil怎么解决?
- 利用百度地图api批量获取地名的详细地址信息
- Javaweb Servlet深入概述(二)
- Notes on Convolutional Neural Networks
- 程序存储结构
- struts2+spring+hibernate入门开发
- Android 短信验证码控件
- IOS如何打包成ipa文件
- sql排序后指定记录显示在指定位置
- Domino 修复关于sslv3的“贵宾犬”攻击(POODLE)
- 《unix高级环境编程》进程控制——exec序列函数