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 ...
随机推荐
- Cloudservice程序设置Idle timeout
部署的云服务程序,默认的idle timeout是4分钟,意味着如果你通过一个workerrole发布了wcf服务,客户端第一次调用服务方法后,再过4分钟尝试去重新调用服务,会报错,具体测试如下: 1 ...
- Pixel & EM
http://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html http://www.thomasphinney.com/2011/03/poi ...
- adapter(转自Devin Zhang)
1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView)等地方都需要用到Adapter.如下图直 ...
- RHEL提示RHN没有注册问题的解决方法
1.系统RHEL5.5,初次使用yum时出现以下问题: [root@localhost real]# yum update Loaded plugins: rhnplugin, security Th ...
- sqlmap注入小结
sqlmap注入时: 1.判断可注入的参数 2.判断可以用那种SQL注入技术来注入 3.识别出哪种数据库 4.根据用户选择,读取哪些数据 sqlmap支持五种不同的注入模式: 1.基于布尔的盲注,即可 ...
- shell学习之路:shell基础大全1
http://note.youdao.com/share/?id=a9d02257b639c94323c818bc38423919&type=note 别名命令alias:http://n ...
- .Net Core 之 图形验证码
本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能. 通过测试的系统: Windows 8.1 64bit Ubuntu Server 16.04 LTS 64 ...
- VTK初学一,e_Triangle三角形的绘制
#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...
- 新手学JavaScript都要学什么?
要从事网页开发,不知从何下手? 会JavaScript语言但是不知道该如何进阶! 最好的方法就是不断地做网页.写代码,不断地看别人的代码,研究别人的代码! 用代码实践JS的每个技巧点:多听多看多问多写 ...
- android版微信5.2.1更新 支持微信聊天记录备份到电脑上
昨天微信 5.2.1 for Android 全新发布了,和微信 5.2.1 for iPhone一样,支持拍照分享,可以把照片发送给多个朋友,最重要的一个更新是支持微信聊天记录备份到电脑(可以通过腾 ...