10. java的servlet+JSP总结

java web项目创建

在这里插入图片描述

项目目录结构

在这里插入图片描述

创建Servlet类对象

servlet对象的创建和使用分两步

  • 第一:定义servlet
  • 第二:配置文件里web-inf/web.xml里声明servlet的处理路径或者使用注解处理

定义servlet

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 扩展 HttpServlet 类
public class HelloWorld extends HttpServlet {
 
  private String message;

  public void init() throws ServletException
  {
      // 执行必需的初始化
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");

      // 实际的逻辑是在这里
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // 什么也不做
  }
}

配置servlet

<web-app>      
    <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>HelloWorld</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
</web-app>  

通过注解配置

Servlet 3.0 中增加了注解支持,例如:@WebServlet、@WebInitParm 、@WebFilter 和 @WebLitener 等,这使得 web.xml 从 Servlet 3.0 开始不再是必选项了。下面我们对 @WebServlet 进行介绍。
servlet注解说明

servlet的重要说明

servlet的生命周期

在这里插入图片描述

注意:除了service方法servlet里还有doget,dopost方法,

  • 一个servlet被访问时,它默认处理请求的是service方法,这个方法是在servlet接口中定义的。对于service方法,一般来说这个方法是不需要重写的,因为在HttpServlet中已经有了很好的实现,它会根据请求的方式,调用doGet,doPost以及其他的doXXXt方法,也就是说service是用来转向的,所以我们一般写一个servlet,只需要重写doGet或者doPost就可以了。
  • 如果重写了service方法,那么servlet容器就会把请求交给这个方法来处理,倘若你重写的service方法没有调用doXXX,即使你在Servlet中又重写了其他doGet doPost等也是不会被调用的,因为Servlet的service被自动调用(就像init destory一样),所以如果你由于某种需要,需要重写service方法,并且更具不同的method调用doPost doGet等时,就要在末尾加上一句super.service(),这样就可以解决问题了。

servlet的重要对象

  • HttpServletRequest对象
  • HttpServletResponse对象
  • Cookie对象
  • HttpSession对象
  • ServletContext对象,所有应用共享一个servletContext对象,是公共数据存储信息

session和cookie

  • session是服务端记录访问者的id,并行把访问者id返回给客户端,下次客户端请求的时候会携带id,然后从session中取值
  • cookie服务端不保存,直接由服务端发送给客户端保存,下次请求可以携带配合业务来完成相关验证或者数据获取
    cookie保存了数据并且在客户端,而session保存的数据在服务端,客户端只有一个id

servlet页面跳转和重定向

  • 页面转发:url不会发生变化,通过页面转发可以把请求数据做中间处理,然后转给其他的页面处理这些数据。
  • 页面重定向:url发生变化,不会把当前servlet的数据转发。

JSP

JSP是对servlet的改编,本质还是servlet,只是编写方式发送了改变,servlet通过代码里写html封装返回,而JSP通过在html里写java代码来简化了html代码在java里书写的麻烦

JSP教程

JSP教程

JSP九大内置对象

对象 描述
request HttpServletRequest 接口的实例
response HttpServletResponse 接口的实例
out JspWriter类的实例,用于把结果输出至网页上
session HttpSession类的实例
application ServletContext类的实例,与应用上下文有关
config ServletConfig类的实例
pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page 类似于Java类中的this关键字
Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

在这里插入图片描述

jsp+servlet配合

servlet只提供接口服务,jsp编写页面,

  • 使用页面跳转或者重定向技术和公共数据保存对象来完成数据的传递。
    • 本质上还是servlet之间的转发
    • 实现的jsp负责承担页面渲染工作
    • 访问的时候是访问controller而不是jsp。
      在这里插入图片描述
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不被定义的号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值