JavaWeb-Servlet

1.Web流程:
       1.1软件架构
            c/s:客户端/服务器端
            b/s:浏览器端/服务器端
       1.2.资源分类:
        静态资源:所有用户访问后,得到的结果都一样;静态资源可以直接被浏览器解析,如: html,css,JavaScript    
       动态资源:所有用户访问后,得到不一样的结果;动态资源被访问后,需要先转换 为静态资源,在返回给浏览器,如:servlet/jsp,php,asp....
       1.3.网络通信三要素:
            IP,端口 (0~65563),协议(tcp:安全协议,三次握手,速度稍慢;  udp:不安全协议,速度稍快)
       1.4.前端发送请求,根据路径信息,访问后台接口
                 通过ip地址找到服务器
    通过端口号,找到web服务器程序
    通过具体路径,找到执行的代码
2.Web服务器软件
        2.1概念
    服务器:安装了服务器软件的计算机
    服务器软件:接受用户的信息,处理请求,作出响应
        2.2 Tomcat控制台乱码
    Windows默认编码是GBK,而Tomcat默认编码是UTF-8,需要将Tomcat的编码改为GBK
--> 在Tomcat目录的conf目录下找到logging.properties文件,将java.util.logging.ConsoleHandler.encoding改为GBK
         2.3<!--Context  表示一个工程上下文
    path: 表示工程访问路径:/abc
    docBase:表示你的工程目录在哪里-->
    <Context  path="/abc"  docBase="E:\book"/>
访问这个工程的路径如下;http://ip:port:/abc/     就表示访问E:\book目录
3.Servlet
    3.1Servlet是小服务程序或服务连接器
          Servlet是javaEE规范之一。规范就是接口
         Servlet是JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
         Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。
 **3.2创建servlet
    一般在实际项目开发中,都是使用继承HttpServlet类的方式去实现Servlet程序
    (1)创建一个普通类继承HttpServlet
    (2)重写HttpServlet中的方法
            service()/doGet()/doPost()
            init(ServletConfig config) 初始化
            destroy() 销毁:结束服务器的时候会执行
    (3)到web.xml中的配置Servlet程序的访问地址

           <servlet>
                <servlet-name>HelloServlet</servlet-name>
                <servlet-class>com.tledu.servlet.HelloServlet</servlet-class>
           </servlet>
           <servlet-mapping>
                <servlet-name>HelloServlet</servlet-name>
                <url-partten>/hello</url-partten>    //   斜杠表示:http:/localhost:8080/项目名/  
           </servlet-mapping>

 

3.3Servlet生命周期(从创建到死亡的执行过程)

(1)先执行构造方法,用于创建Servlet对象
(2) 执行init()方法做初始化操作

(3)执行service()/doGet()/dopost()方法处理真正的逻辑操作和数据交互

(4)执行destroy()方法进行资源释放和销毁

3.4ServletConfig类三大作用:(每个Servlet程序创建时都会创建一个对应的ServletConfig)

(1)可以获取Servlet程序的别名 servlet-name的值

(2)获取初始值参数init-param

(3)获取ServletContext对象

3.5ServletContext类(上下文对象,是一个接口,是一个域对象)

ServletContext四个作用:

(1)获取web.xml中配置的上下文参数  context-param

(2)获取当前的工作路径,格式:              / 工程路径

(3)获取工程部署后在服务器硬盘上的绝对路径

(4)像Map一样存取数据

3.6HTTP协议(大家都要遵守的规则):

http协议中的数据又叫     报文

                 请求

客户端  --------------> 服务器

                   响应

请求:get

(1)form标签   method=get

(2)a 标签

(3)link标签引入css

(4)img标签引入图片

(5)Script标签引入js对象

(6)iframe引入html页面

(7)在浏览器地址栏中输入地址后敲回车

(8)form标签  methom=post

post请求:

1.响应行:

(1)响应的协议和版本号

(2)响应状态码

(3)响应状态描述符

2.响应头

(1)key:value

不同的响应头,有其不同含义

3.响应体(-------->回传给客户端的数据)

常用的响应码说明:

200表示请求成功

302表示请求重定向

404表示服务器已经收到,但是你要的数据不存在(请求地址错误)

500表示服务器已经收到请求,但是服务器内部错误(代码错误)

3.6Request&Response

1.HttpServletRequest类的作用:   每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中.然后传递到service方法(doget和dopost)中给我们.我们可以通过HttpServletRequest对象,获取到所有请求的信息.

HttpServletRequeat的常用方法:

(1)getRequestUIR()    获取请求的资源路径

(2)getRequestURL()      获取请求的统一资源定位符(绝对路径)

(3)getRometeHost()  获取客户端的ip地址

(4)getHeader()        获取请求头

(5)getParameter()   获取请求的参数

(6)getParameteValues()   获取请求的参数(多个值的时候使用)

(7)getMethod()   获取请求的方式Get或POST

(8)setAttribute(key,value)    设置域对象

(9)getAttribute(key); 获取域数据

(10)getRequestDispatcher()   获取请求转发对象

请求转发

请求对象request:        request.getRequestDispatcher("/servlet2").forward(request,responce)

     特点:(1)转发地址不 会发生改变
        (2)可以传值
        (3)通过转发可以访问WEB-INF目录下的jsp
        (4)不可以访问工程外部的资源
        (5)是一次请求
乱码:   request.setCharactorEncoding("UTF-8")    //一定要在接受前设置
响应对象:response
response.sendRedirest("http://localhost:8080/demo02");
重定向: 客户端给服务器发请求,然后服务器告诉客户端说。我给你一些地址。你去新地址访问。叫请求重定向(因为之前的地址可能已经被废弃)
       
特点:1.地址不会发生改变
                2.不能传值
                3.是新的一次请求
getOutputStream():   是以二进制的形式响应客户端(下载时用)
getWriter():是以字符串的形式响应
乱码:response.setContentType("text/html;charset=UTF-8")

 

请求重定向的第一种方案:

// 设置响应状态码 302 ,表示重定向,(已搬迁)

resp.setStatus(302);

// 设置响应头,说明 新的地址在哪里

resp.setHeader("Location", "http://localhost:8080");

请求重定向的第二种方案(推荐使用):

resp.sendRedirect("http://localhost:8080");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值