Servlet的使用方法详细说明
Servlet的生命周期方法:
<servlet> <servlet-name>Servelettest1</servlet-name> <servlet-class>com.web.servlet.Servelettest1</servlet-class> //全路径 </servlet> <servlet-mapping> <servlet-name>Servelettest1</servlet-name> <url-pattern>/Servelettest1</url-pattern> //浏览请求别名,前面必须加斜杠 </servlet-mapping>
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{ PrintWriter pw = response.getWriter(); //这个输出流是从web服务器到浏览器,打印在web服务器中 pw.print("hello world"); pw.close(); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{ PrintWriter pw = response.getWriter(); pw.print("hello world"); pw.close(); }
在index.jsp中
<a href="./Servelettest1">hello world<a> <form action="Servelettest1" method="post"> //Servelettest1是 <url-pattern>/Servelettest1</url-pattern> <input type="submit" value="提交">
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{ String username = request.getParameter("username"); //获取用户名 String password = request.getParameter("password"); PrintWriter pw = response.getWriter(); pw.print("hello world"+username+password); pw.close(); }
对应jsp:
<form action="Servelettest1" method="post"> 用户账号:<input type="text" name="username"> 用户密码:<input type="password" name="password"> <input type="submit" value="提交"> </form>
package com.web.servlet; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Servelettest2 extends HttpServlet{ public void init(){ } public void destroy(){ } public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{ String uname = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("Servelet2被调用"); //页面跳转 response.sendRedirect("Servelettest3"); //实现页面的跳转 } }
方法二:
RequestDispatcher rd = request.getRequestDispatcher("Servelettest3"); rd.forward(request,response);
index.jsp:
<form action="Servelettest2" method="post"> 用户账号:<input type="text" name="username"> 用户密码:<input type="password" name="password"> <input type="submit" value="提交"> </form>
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{ request.setCharacterEncoding("UTF-8"); //解决请求服务器中文乱码 response.setCharacterEncoding("UTF-8"); //解决服务器到客户端乱码问题 response.setContentType("text/html; charset=utf-8"); //解决服务器到客户端乱码问题 String username = request.getParameter("username"); String password = request.getParameter("password"); PrintWriter pw = response.getWriter(); pw.print("hello world"+username+password); System.out.println(username+password); pw.close(); }
过滤器:
<filter> <filter-name>/filter1</filter-name> <filter-class>com.web.servlet.CharacterFilter</filter-class> </filter> <filter-mapping> <filter-name>/filter1</filter-name> <url-pattern>/*</url-pattern> //星号代表所有的传输都要经过它 </filter-mapping>
package com.web.servlet; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class CharacterFilter implements Filter{ @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub arg0.setCharacterEncoding("utf-8"); arg1.setCharacterEncoding("utf-8"); arg1.setContentType("text/html; charset=utf-8"); arg2.doFilter(arg0, arg1); } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
<session-config> <session-timeout>1</session-timeout> //设置监听时长为一分钟,若不修改,默认为30分钟 </session-config>
package com.web.servlet; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; //实现接口HttpSessionListener public class OnlineCounterListener implements HttpSessionListener,HttpSessionAttributeListener{ private int count=0; @Override public void sessionCreated(HttpSessionEvent arg0) { // TODO Auto-generated method stub count++; System.out.println("有新用户访问,当前访问人数为:"+count); } @Override public void sessionDestroyed(HttpSessionEvent arg0) { // TODO Auto-generated method stub count--; System.out.println("有一位退出,当前人数为:"+count); } @Override public void attributeAdded(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } @Override public void attributeRemoved(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } @Override public void attributeReplaced(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } }
Servlet的使用方法详细说明的更多相关文章
- 《收藏》对servlet原理讲解特别详细
转载:http://blog.csdn.net/javaloveiphone/article/details/8154791 内容: 一.先从servlet容器说起:大家最为熟悉的servlet容器就 ...
- quartz实现定时功能实例详解(servlet定时器配置方法)
Quartz是一个完全由java编写的开源作业调度框架,下面提供一个小例子供大家参考,还有在servlet配置的方法 Quartz是一个完全由java编写的开源作业调度框架,具体的介绍可到http:/ ...
- win8.1系统的安装方法详细图解教程
win8.1系统的安装方法详细图解教程 关于win8.1系统的安装其实很简单 但是有的童鞋还不回 所以今天就抽空做了个详细的图解教程, 安装win8.1系统最好用U盘安装,这样最方便简单 而且系统安装 ...
- WEB启动时就加载servlet的dopost方法
web启动的时候可以加载servlet的init方法,无法加载dopost方法,如果你需要什么内容在启动的时候执行,可以将内容放到init方法里面,dopost方法,是在客户端使用post请求的时候才 ...
- S5中新增的Array方法详细说明
ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...
- ASP.NET MVC3 局部页面@RENDERBODY @RENDERPAGE@RENDERSECTION使用方法详细说明
转载自:http://blog.163.com/wenchangqing_live/blog/static/173722309201211299817278/ asp.net mvc3局部页面使用方法 ...
- IOS--UILabel的使用方法详细
IOS-UILabel的使用方法详细 //UILabel的使用 UILabel *oneLabel = [[UILabel alloc] init]; // 最经常使用的 oneLabel.fra ...
- IOS--UITextView 多行文本的输入和显示 的使用方法详细
IOS--UITextView 多行文本的输入和显示 的使用方法详细 // UITextView的常用方法 主要用来输入和显示多行文本信息 UITextView *oneTextView = [[ ...
- IOS--UIPageControl的使用方法详细
IOS--UIPageControl的使用方法详细 // UIPageControl的常用方法 UIPageControl *onePageControl = [[UIPageControl al ...
随机推荐
- RGB to HSI, HSI to RGB Conversion Calculator
The RGB color model is an additive system in which each color is defined by the amount of red, green ...
- FBX Software Development Kit
FBX Software Development Kit The FBX Software Development Kit (FBX SDK) allows software developers t ...
- live555编译、移植
1.windows下编译 转 http://www.cnblogs.com/skyseraph/archive/2012/04/11/2442840.html 2.linux下编译,以及交叉编译,海思 ...
- Auto generating Entity classes with xsd.exe for XML Serialization and De-Serialization
More info here: http://blogs.msdn.com/b/yojoshi/archive/2011/05/14/xml-serialization-and-deserializa ...
- .net3.5后新增的 BeginInvoke EndInvoke 异步操作
protected void Main() { //首先定义一个方法的封装..后边的LongTimeMethod是被封装的方法.. Func<int> longTimeAction = n ...
- knockout-validation不自动插入错误消息
<div data-bind="validationOptions:{insertMessages:false}"> <div class="valid ...
- JavaScript 五种(构造方式)继承
一.对象冒充 function Parent(username){ this.username = username; this.hello = function(){ alert(this.user ...
- Java7的异常处理新特性-addSuppressed()方法等
开发人员对异常处理的try-catch-finally语句块都比较熟悉.如果在try语句块中抛出了异常,在控制权转移到调用栈上一层代码之前,finally语句块中的语句也会执行.但是finally语句 ...
- Java byte位移操作 注意事项
Java对byte 的 + - * / >> >>> << & | ^ (加,减,乘,除,右移,左移,无符号右移,位与,位或,位异或)操作,均会是首先 ...
- 手机注册获取验证码的PHP代码
php代码 <?php require dirname(__FILE__).'/include/common.inc.php';//这是在cms2008下面做的测试 header("c ...