关于Servlet学习(下)
来源:互联网 发布:c语言二维数组排序方法 编辑:程序博客网 时间:2024/05/16 09:42
上一篇讲了Servlet的入门,现在开始以事件作为驱动来学习Servlet。
本篇我们从一个一个例子来开始学习。
实例一:我们 将会编写一个带表单的HTML页面,表单提供用户输入姓名和密码,然后提交给一个Servlet处理,在Servlet中,我们从提交的表单信息中取出用户姓名和密码,然后加上欢迎信息输出到客户浏览器端,以此达到模拟登录的目的。
首先编写一个简单的html页面welcome.html:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>用户登录</title></head><body><form action="welcome" method="post">用户名:<input type="text" name="username"/>密 码:<input type="password" name="userpasd"/></form></body></html>
然后编写一个Servlet类Welcome.java:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //从request对象中取得用户的姓名和密码 String username = request.getParameter("username"); String userpasd = request.getParameter("userpasd"); String welInf = "Welcome you"+username+" your password is"+userpasd; //设置返回文档类型 response.setContentType("text/html"); //取得输出对象 PrintWriter out = response.getWriter(); out.println("<html><head><title>"); out.println("welcome page!"); out.println("</title></head>"); out.println("<body>"); out.println(welInf); out.println("</body></html>"); out.close();; } 该Servlet中只编写了doPost方法,仍然让doGet调用doPost方法。这里做出说明:HttpServletRequest的对象封装了客户端的请求消息,要获取请求中的某参数值可以使用该对象的getParameter()方法,该对象还有很多重要方法,具体查看API。
最后修改配置文件,这里不再赘述了,配置完后运行效果如下:
:
1.Servlet的生命周期
(1)加载和实例化:当Servlet容器启动时,或者在容器检测到需要这个Servlet来相应第一个请求时,创建Servlet实例。
(2).初始化:在Servlet实例化后容器必须调用Servlet的init()方法初始化这个对象,初始化的目的是为了让Servlet对象在处理客户请求前完成一些初始化工作。如建立数据库的连接等。
(3)请求处理:Servlet容器调用Servlet的service()方法对请求进行处理
(4)服务终止:当容器检测到Servlet实例应该从服务中移除的时候容器就会调用实例的destory()方法。
2.Servlet的上下文
运行在Java的虚拟机中的每一个web应用程序都有一个与之相关的Servlet上下文,在JavaServlet中提供了一个ServletContext接口用来表示上下文:该接口中有很多重要方法,比如getContext()、getRealPath()、getRequestDispatcher()等。
3.Servlet的请求转发
根据业务需求,某些Servlet在设计的时候会被设计成控制器的形式,负责管理业务请求转发。Servlet可以将请求转发到另外一个Servlet或者JSP等。这种转发的实现是由java.servlet.RequestDispatcher接口实现。
RequestDispatcher对象由Servlet容器负责创建,用于封装一个由路径所标识的服务器资源,利用RequestDispatcher对象,就可以实现请求转发。该接口中有两个方法:
(1)public void forward(ServletRequest request, ServletResponse response):使用此方法时,Servlet将请求交给其他的Servlet,将由其他Servlet负责请求作出响应,而原先的Servlet的执行则终止了。
(2)public void include(ServletRequest request, ServletResponse response):使用此方法时,Servlet将请求交给其他Servlet,被调用的Servlet对该请求做出的响应将并入原先的响应对象中,原先的Servlet还可以继续输出响应信息。
通常有两种方法获取RequestDispatcher对象:利用ServletRequest借口红的getRequestDispatcher(String path)方法获取和ServletContext接口中的getRequestDispatcher(String path)
- 关于Servlet学习(下)
- Servlet 学习总结(下)
- 关于Servlet的学习
- 关于Servlet学习(上)
- 关于servlet和jsp的学习总结一(详细)
- 关于servlet和jsp的学习总结二(详细)
- 关于servlet和jsp的学习总结三(详细)
- JSP&&SERVLET学习笔记(四):关于HttpServletRequest
- Servlet容器(下)
- Servlet学习(四)Servlet过滤器学习
- 关于Servlet和过滤器、监听器的学习
- 关于servlet和Javabean的学习笔记
- Servlet学习(1)
- Servlet学习(2)
- Servlet学习(一)
- Servlet学习(一)
- Servlet学习(二)
- Servlet学习(一)
- Lua学习笔记5:类及继承的实现
- 网上出名IT技术网站整理
- Android使用pull解析器解析xml文件
- java File_encoding属性
- 3D绘图程序设计之shader学习总结(二)
- 关于Servlet学习(下)
- 写selector的xml文件时,需注意item的顺序,不带状态的item放在最后,否则selector无效
- vnc 复制粘贴命令
- 求1到100的和的三种形式(while,do...while&for)
- listview属性总结
- ICE的连接机制
- 安装Git
- linux驱动错误:no such file or directory
- struts spring hibernate 配置