Servlet入门

软件结构发展史

  • 单机时代-桌面应用
  • 桌面应用俗称单机应用,软件所有数据都保存在电脑本地硬盘
  • 优点:易于使用,结构简单
  • 缺点:数据难以共享、安全性差、更新不及时
  • 联机时代(Client-Server模式)
  • Client/Server结构(C/S结构)是指客户端和服务器结构
  • 优点:数据方便共享。安全性高
  • 缺点:必须安装客户端、升级与维护困难
  • 互联网时代(Broswer-Server模式)
  • Broswer-Server(B/S)模式即浏览器和服务器架构模式
  • 优点:开发简单、无需安装客户端、数据易于共享
  • 缺点:相对于C/S模式,执行速度与用户体验相对较弱

J2EE

  • J2EE(Java 2 Platform Enterprise Edition)是指"Java 2 企业版"
  • B/S模式开发Web应用就是J2EE最核心的功能

J2EE模块

  • Servlet web服务器小程序
  • JSP 服务器页面
  • JDBC 数据库交互模块
  • XML XML交互模块
  • EJ 企业级Java Bean
  • RMI 远程调用
  • JNDI 目录服务
  • JMS 消息服务
  • JTA 事务管理
  • JavaMail(发送/接受Email
  • JAF 安全架构
  • CORBA CORBA集成
  • JTS CORBA事务监控

Apache Tomcat

  • Tomcat是Apache软件基金会旗下一款免费的开源代码的Web应用服务程序
  • Tomcat是运行Servlet(服务器小程序)的容器

Servlet

  • Servlet(Server Applet)服务器小程序,主要功能用于生成动态Web内容
  • Servlet是J2EE最重要的组成部分,也是我们学习的重点

标准Java Web工程结构

组织结构描述
tomcat安装目录/webappsTomcat应用根目录
/web应用目录Java Web应用目录
/web应用目录/inde.html 或 .jsp默认首页
/WEB-INFWEB应用的安全目录,用于存放配置文件
WEB-INF/web.xmlweb.xml是“部署描述符文件”,是该Web项目核心配置文件
WEB-INF/classes存放编译后的classes文件
WEB-INF/lib用于存放web应用依赖的jar文件
/META-INF/MANIFEST.MF包含Web应用的版本等信息

Servlet开发步骤

  • 创建Servlet类,继承HTTPServlet
public class FistServlet extends HttpServlet{
  • 重写service方法,编写程序代码
  • service是请求处理的核心方法,无论是get还是post都会被service()方法处理
//getMethod()可以获取当前的请求方法
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String name = request.getParameter("name");
		String html = "<h1 style = 'color:red'>hi,"+name+"!</h1><hr/>";
		System.out.println(html);
		PrintWriter out = response.getWriter();
		out.println(html);
	}
  • 配置web.xml,绑定URL
<servlet>
	<!--创建名字-->
    <servlet-name>fist</servlet-name>
    <servlet-class>Servlet.FistServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>fist</servlet-name>
	<!--绑定URL-->
    <url-pattern>/hi</url-pattern>
  </servlet-mapping>

Servlet访问方法

  • http://ip地址:端口/context-path/url-mapping
  • 远程访问使用IP地址,本地localhost(127.0.0.1)
  • context-path称为"上下文路径",默认为工程名

请求参数

  • 请求参数是指浏览器通过请求向Tomcat提交的数据
  • 请求参数通常是用户输入的数据,待Servlet进行处理
  • 参数名1 =值1 &参数名2 =值2&参数名 n=…

Servlet接受请求参数

  • request.getParameter() - 接收单个参数
  • request.getParameterValues() - 接收多个同名参数(复选框)

Get与Post请求方法

  • Get方式是将数据通过在URL附加数据显性向服务器发送数据。(可读性更强)
  • http://localhost:8080/FirstServlet/sample?name=zhangsan
  • doGet
//处理Get请求
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
    response.getWriter().println("<h1 style='color:red'>"+request.getParameter("name")+"</h1>");
}
  • Post方式会将数据存放在”请求体”中隐性向服务器发送数据(更隐秘)
  • http://localhost:8080/FirstServlet/sample
  • 请求体: name= zhangsan
  • doPost()
//处理Post请求
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
    response.getWriter().println("<h1 style='color:green'>"+request.getParameter("name")+"</h1>");
}

如果不重写service的方法,那么他会将不同的请求交给不同的方法处理

Get与Post应用场景

  • Get常用语不包含敏感信息的查询功能
  • 数据查询
  • http: //www.baidu.com/s?wd=imooc&rsv_spt=1;
  • Post用于安全性要求较高的功能或者服务器的“写”操作
  • 敏感信息和数据库写的操作
  • 用户登录
  • 用户注册
  • 更新公司账目

Servlet生命周期

  1. 装载 - web.xml
  2. 创建 - 构造函数
  3. 初始化 - init()
  4. 提供服务 - service()
  5. 销毁 - destroy() - 重启的时候自动执行
    在Servlet服务中有且只有一个Servlet对象提供服务

使用注解简化配置

  • 注解用于简化Web应用程序的配置过程
  • Servlet核心注解:@WebServlet
@WebServlet("/anno")
public class AnnotationServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		resp.getWriter().println("I'm annotation Servlet!");
	}
}

启动时加载servlet

  • web.xml使用设置启动加载
  • 0~9999 0的优先级最高
  • 启动时加载在工作中常用于系统的预处理(可以提前加载一些费事费力的工作,这样就会让程序运行起来更加流畅)
//采用注解方式
@WebServlet(urlPatterns = "/create",loadOnStartup = 2)
//必须在注解中添加一个不冲突的地址
//配置xml
<servlet>
    <servlet-name>create</servlet-name>
    <servlet-class>servlet.CreateServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值