Servlet笔记

来源:互联网 发布:ssuggest软件下载 编辑:程序博客网 时间:2024/06/18 15:41
1.Web应用的演变
   1) 从单机到网络
   2) 从CS到BS
2.什么是Servlet
   1) 如何远程访问静态页面?
    A.服务器上部署HTML
    B.浏览器访问服务器的HTML
   2)如何访问动态页面?
     A.服务器上部署Servlet
     B.浏览器访问Servlet,由Servlet动态生成HTML
   3)Servlet
     A.Servlet是服务器端的满足规范的组件(类)
     B.它可以处理HTTP协议,动态生成HTML


3.Tomcat的使用
    1)Linux:
     A.安装Tomcat 


     B.启动Tomcat
       打开/tomcat/bin,右键打开终端
        执行命令:./startup.sh
     C.访问Tomcat
       打开浏览器,输入地址(默认端口为8080)
       http://localhost:8088
       看到一只猫则代表访问成功
     D.关闭Tomcat
       打开/tomcat/bin,右键打开终端
        执行:./shutdown.sh
   2)windows:
     A.安装JDK,配置JAVA_HOME;
     B.安装Tomcat
       打开/tomcat/bin,双击startup.bat
     C.访问Tomcat
       http://localhost:8088
       看到一只猫则代表访问成功.
     D.关闭Tomcat 
       打开/tomcat/bin,双击shutdown.bat
   3)修改Tomcat端口
     打开/tomcat/conf/server.xml,在70行修改为8088
4.开发Servlet(手动部署)
   1)创建Java项目
   2)创建WEB目录
      WebRoot
        WEB-INF
 classes
 lib
   *.jar
          web.xml
   3)Bulid Path -->Libraries --> Add Jars
     Build Path -->source -->Output folder
   4)创建Servlet
     A.实现Servlet接口
     B.继承HttpServlet类
   5)注册Servlet
     在web.xml中注册Servlet
   6)手动部署
      将WebRoot整体复制到/tomcat/webapps下
   7)访问Servlet
    http://localhost:8080/WebRoot/hello
5.开发Servlet(MyEclipse自动部署)
   1)创建Web项目
   2)写Servlet
   3)注册Servlet
   4)使用MyEclipse部署项目
      A.在MyEclipse下部署Tomcat,告诉它要使用哪一个Tomcat
      B.使用MyEclipse启动Tomcat
         点击服务器图标下的Tomcat6-> Start
      c.访问Tomcat
      D.关闭Tomcat
        点击服务器图标下的Tomcat6->Stop Servlet
   5)使用MyEclipse启动Tomcat
   6)访问Servlet
   7)使用MyEclipse关闭Tomcat
6.HTTP协议
  1)用来规范客户端和服务器通信的方式和数据格式。
  2)其特点是一次连接处理一个请求。
  3)请求步骤
     A.建立连接
     B.发送连接
     C.接收响应
     D.关闭连接
  4)数据的格式
     请求数据包的格式:
       --请求行
       --消息头
       --实体内容


     响应数据包的格式:
       --状态行
       --消息头
       --实体内容


补充:
1.什么是JavaBean
  满足如下规范的类
  1)有包
  2)有默认构造器
  3)实现序列化接口
  4)有bean属性(get/set方法所对应的属性)
  public class Teacher{
//对象属性
private String teacherName;
//name是bean属性
public void setName(String name){
this.teacherName=name;
}
public String getName(){
return this.teacherName;
}
//UserName是bean属性
public String getUserName(){

}
  }


2.名词解析
1)部署
  1)就是把编译后的代码拷贝到Tomcat/
    webapps下。
  2)部署是专业的说法。
2)服务器

 Tomcat是服务器,也叫Java Web服务器,也叫Web服务区,也叫Servlet容器。

1.请求方式
   1)get
     A.利用URL传参
       浏览器会把参数自动附加在URL上传递给服务器,在传参的过程中参数是可见的。
     B.对传递的数据有限制,很小
     C.使用get的时机
       --传递的数据少
       --如查询、删除
   2)post
     A.利用实体内容传参
       数据在传递的过程中不可见
     B.对传递的数据没有限制,很大
     C.使用post的时机
       --传递的数据多
       --如新增保存、修改保存、注册、登录
2.给服务器传参时的乱码问题
    1)get
      get_encoding.png
    2)post
      post_encoding.png
    3)总结
      A.尽量避免get请求传中文,post请求乱码采用req.setCharacterEncoding()设置
      B.服务器给浏览器响应时 res.setContentType("text/html;charset=utf-8");







重定向:
  1.2个独立的组件(Servlet)之间跳转,采用重定向。一次重定向中包含两次请求。
  2.使用时机:
     1)新增保存后,重定向到查询
     2)修改保存后,重定向到查询
     3)删除后,重定向到查询
  
  早期重定向用来解决2个网站之间的衔接问题,现在也常被用来解决
   一个项目内部的两个不同组件之间的衔接问题。


1.注册Servlet访问路径
   1)精确(/名称)
A.给Servlet取唯一的一个访问名
 只能通过该访问名访问这个Servlet
B.比较直观,但是比较麻烦。
C.举例:
  查询员工:/findEmp
  新增员工:/addEmp
  删除员工:/deleteEmp
   2)通配符(/*)
        A.任何请求都可以访问这个Servlet
B.特征:可以使用一个Servlet处理项目中的所有请求,
从而达到简化Servlet注册的目的
C.举例:
 ActionServlet ->/*
 所有的请求都交给ActionServlet处理
   3)后缀(*.abc)
A.带有"abc"后缀的请求才能访问次Servlet。
B.特征:每一个模块单独使用一个Servlet处理其业务,用后缀区分模块。
C.举例:
 员工模块(增删改查员工)
   EmpServlet -> *.emp
 部门模块(增删改查部门)
 DeptServlet -> *.dept
D.注意
 此种方案也可以写一个Servlet处理所有请求,即将所有请求当做一个大模块
 ActionServlet -> *.do
2.项目中的做法
  在项目中为了减少web.xml的配置,通常使用一个Servlet处理所有的请求。
  1)参考SpringMVC框架的做法
    Servlet ->*.do
    即采用第三种方案(后缀)处理所有请求;
  2)参考Struts2框架的做法
    Filter(类似于Servlet) ->/*
    即采用第二种方案(通配符)处理所有请求
  3)注意
    A.在这种方案下写Servlet,一个Servlet处理全部请求,那么必须实现约定那个功能对应那个请求路径,
    然后此Servlet才能遵循这个约定处理业务。
    B.开发之前,必须完成这些约定(开发规范)
3.重构EmpManager(简化配置)
  1)目标:使用一个Servlet处理所有的请求。
  2)规范:
A.所有的请求后缀都是.do;

1.JSP概述
  1)JSP借鉴了微软的ASP
  2)JSP用来改善Servlet动态生成页面的开发
  3)Java Server Page
    A.Java服务端的动态页面技术。
    B.它更像网页,但是它是服务端组件,
      不是客户端组件,和HTML有本质的区别。
    C.JSP运行在服务器上,HTML运行在浏览器上
2.JSP的使用
  1)HTML/CSS/JS
    直接书写
  2)Java
    *A.JSP表达式
      用来输出变量
    *B.JSP脚本
      写Java的语法(分支、循环)
    C.JSP声明
      声明Java函数
      建议将Java函数封装在类中,在
      JSP中对其进行调用,最好别直接
      在JSP中写Java。




0 0