JavaWeb-----实现第一个Servlet程序
1.Servlet简介
Servlet是在服务器端运行的一个小程序,实际上一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内
存里的servlet程序。主要用来处理客户端请求、响应给浏览器的动态资源
2.Servlet原理
Web服务器在与客户端交互时.Servlet的工作原理是:
- 在客户端对web服务器发出请求
- web服务器接收到请求后将其发送给Servlet
- Servlet容器为此产生一个实例对象并调用ServletAPI中相应的方法来对客户端HTTP请求进行处理,然后将处理的响应结果返回给WEB服务器
- web服务器将从Servlet实例对象中收到的响应结构发送回客户端

3.Servlet生命周期
- 装载Servlet
- Server创建一个Servlet实例
- Server调用Servlet的init方法,只初始化一次
- 一个客户端请求到达Server
- Server创建一个请求对象
- Server创建一个响应对象
- Server激活Servlet的service方法,传递请求和响应对象作为参数
- service方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
- service方法使用响应对象的方法。将响应传回Server,最终到达客户端
- 对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此servlet的service方法,将这两个对象作为参数传递给它
- 当Server不再需要Servlet时,比如当Server要关闭时,Server调用Servlet的destroy
4.第一个Servlet实例
配置Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>Servlet_HelloWorld</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.servlets.HelloWorldServlet</servlet-class>
<!-- 当值为0或者大于0时,表示容器在启动时就加载并初始化这个servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
Servlet处理类
package com.servlets; import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; //@WebServlet("/helloworldservlet") 可以在Web.xml中配置servlet代替
public class HelloWorldServlet extends HttpServlet {
private static final long serialVersionUID = 1L; public HelloWorldServlet() {
super();
System.out.println("创建Servlet实例");
} public void init(ServletConfig config) throws ServletException {
System.out.println("初始化");
} public void destroy() {
System.out.println("销毁");
} protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("调用service()方法");
response.setCharacterEncoding("UTF-8");
//获得参数
String userName = request.getParameter("userName");
String userPwd = request.getParameter("userPwd");
//将数据存入Session
HttpSession session = request.getSession();
session.setAttribute("userName", userName);
session.setAttribute("userPwd", userPwd);
//转发
request.getRequestDispatcher("/success.jsp").forward(request, response);
}
}
JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>First Servlet</title>
</head>
<body>
<a
href="${pageContext.request.contextPath}/helloworldservlet.do?userName=张三&userPwd=123456">HelloWorld!</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>${userName}</h1>
<h1>${userPwd}</h1>
</body>
</html>
注意:若是service()、doPost()和doGet()这三个方法都在存在的情况下,java只会执行service()方法,而其他的两种方法不会被执行。若是没有service() 方法,则是根据jsp传入方式选择对应的方法
JavaWeb-----实现第一个Servlet程序的更多相关文章
- Servlet笔记2--模拟Servlet本质、第一个Servlet程序、将响应结果输出到浏览器中
以下代码均非IDE开发,所以都不规范,仅供参考 模拟Servlet本质: 模拟Servlet接口: /* SUN公司制定的JavaEE规范:Servlet规范 Servlet接口是Servlet规范中 ...
- Servlet快速入门:第一个Servlet程序
Servlet是整个JavaWeb开发的核心,同时也是一套规范,即公共接口.用于处理客户端发来的请求并作出响应.通常情况下我们会发送不同的请求并交由不同的处理程序来处理,例如处理用户信息和处理订单信息 ...
- 动手学servlet(一) 第一个servlet程序
1.文件>新建>动态WEB项目 "javaeedemo">在Java Resource的src下新建包“servletdemo”,包下新建一个类“MyServet ...
- 【转】MyEclipse第一个Servlet程序
转自:http://blog.csdn.net/wangdingqiaoit/article/details/7674367 前言 本文旨在帮助学习java web开发的人员,熟悉环境,在Win7系统 ...
- 配置一个servlet程序
<!-- 配置一个servlet程序 --> <servlet> <!-- servlet的内部名称 ,可以自定义--> <servlet-name>H ...
- MyEclipse第一个Servlet程序 --解决Win7系统下MyEclipse与Tomcat连接问题
前言 本文旨在帮助学习java web开发的人员,熟悉环境,在Win7系统下运行自己的第一个Servlet程序,因为有时候配置不当或系统原因可能会运行不成功,这给初学者带来了一定烦恼,我也是为此烦恼过 ...
- 第一个Servlet程序及分析
第一个Servlet程序: package cc.openhome; import java.io.IOException; import java.io.PrintWriter; import ja ...
- Javaweb学习(三):Servlet程序
好了,既然开发环境已经配置好了.那么我们首先要搞定得便是servlet了,至于为什么不先去研究jsp,这是因为jsp与servlet本就是一体两面,jsp其本身经过编译.载入.转化等步骤最终会成为se ...
- 创建第一个servlet程序--HelloServlet
这篇文章是用来纪念我第一次创建一个Servlet程序,步骤我会写得详细点,也可以参考一下,后续我会将SpringMVC 跟ssh的搭建分别更新(ps:不忙的话我会更新) 工具:java jdk 1.6 ...
- servlet(1) - 手写第一个servlet程序 - 小易Java笔记
声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定 1. 建立程序的文件结构 ==>找到tomcat的安装目录,在webapps目录下新建一个名 ...
随机推荐
- 处理MySQL的ibdata1文件过大问题
ibdata1文件是什么? ibdata1是一个用来构建innodb系统表空间的文件,这个文件包含了innodb表的元数据.撤销记录.修改buffer和双写buffer.如果file-per-tabl ...
- webapi 统一处理时间格式
public class UnixDateTimeConvertor : DateTimeConverterBase { public override object ReadJson(JsonRea ...
- adb命令集锦
adb 是什么? adb工具即Android Debug Bridge(安卓调试桥) tools.它就是一个命令行窗口,用于电脑端与模拟器或者真实设备交互. 常用操作: 把文件发送到android设备 ...
- Nessus中文报告自动化脚本
前言 Nessus扫描完成,总要花挺多时间去整理报告,为此写了一个小脚本,用于自动化生成中文漏洞报告. 解析导出的html报告,自动翻译成中文,并提供修复建议,减少整理报告的时间,提升工作效率. gi ...
- VS F5不编译 F5总是重新编译
遇到奇怪的现象,F5不编译了 右键解决方案-配置管理器-确保项目的生成被勾选 另外一个情况,即使不修改任何代码,每次点击“生成”或者F5,都会重新编译(Debug模式没问题,Release有这个问题, ...
- MYSQL中动态行数据转列数据
最近用到城市矩阵相关 需要将城市与城市距离转化为二维表 通过动态SQL直接实现 贴出来一起学习: 表就三个字段,包含在sql内. SET @sql:=''; SELECT @sql:=GROUP_CO ...
- HTTP 请求头 WIKI 地址
https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
- thinphp5框架遇到 mkdir() Permission denied 解决办法
网站重装 直接复制本地程序文件 里面数据库链接信息要改成线上的 然后mysql apache 等都没有动 运行后出现错误 mkdir() Permission denied 这是由于runtime目录 ...
- Nginx、haproxy反向代理设置
Nginx反向代理配置: #user nobody; worker_processes ; events { worker_connections ; } http { include mime.ty ...
- SQLite可视化工具SQLite studio
特点: 1.轻量级2.独立性,没有依赖,无需安装3.隔离性 全部在一个文件夹系统4.跨平台 支持众多操作系统5.多语言接口 支持众多编程语言6.安全性 事物,通过独占性和共享锁来实现独立事务的处理,多 ...