JavaWeb-Servlet

本文介绍了Servlet的基础知识,包括Servlet的简介、使用IDEA创建和配置Servlet、Servlet的生命周期和运行过程。详细讲解了如何在IDEA中开发Servlet,配置Tomcat并运行。此外,还涵盖了Response相关内容,如重定向、ServletContext的应用以及解决乱码问题的方法。最后,探讨了会话管理,包括Cookie和Session的使用,以及它们在会话跟踪中的作用。
摘要由CSDN通过智能技术生成

Servlet

简介

Servlet是JavaEE的一个组件,也是JavaEE中的一种规范,为了遵循这一规范所有的类都必须实现javax.servlet.Servlet接口
在这里插入图片描述
在这里插入图片描述

使用IDEA开发Servlet

  1. 新建一个项目:
    在这里插入图片描述
  2. 新建好的项目的结构
    在这里插入图片描述
  3. 接着在src中新建一个包,用于存放java代码,在这个包中new
    在这里插入图片描述
  4. 新建的servlet中IDEA已经帮你写好需要继承的HttpSevlet类,但因为没有导包,致使 类报错,所以我们需要给其导包(快捷键alt+回车) 点击Add JavaEE6 … 在这里插入图片描述
  5. 点击后会出现一个提示框,接着点击Download即可,IDEA会自动下载所需的jar包,并放在lib的文件夹下
    在这里插入图片描述

在这里插入图片描述
6. 此时就可以编写Servlet了

package com.igor.servlet;

import java.io.IOException;

public class ServletDemo extends javax.servlet.http.HttpServlet {
   
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
   
    
    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
   
        //让浏览器打印一句Hello Servlet
        response.getWriter().println("Hello Servlet");
    }
}
  1. 接着配置Servlet,打开下面的Web目录下的WEB-INF目录,有一个web.xml文件,然后再该文件中配置
    在这里插入图片描述
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>ServletDemo</servlet-name>
        <servlet-class>com.igor.servlet.ServletDemo</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>
</web-app>

配置Tomcat,以及运行

见:https://blog.csdn.net/weixin_43958460/article/details/96269640 后面的使用IDEA搭建Web开发环境,在搭建完成后运行Tomcat,Tomcat运行后,在运行的初始页面后加上上面web.xml中servlet-apping标签下,url-pattern中的地址,比如:/servlet
在这里插入图片描述
此时页面跳转,并显示"Hello Servlet"。


Servlst的生命周期

在这里插入图片描述
可以用this查看其中的方法:
在这里插入图片描述

.

Servlet运行过程

在刚下的演示中,我们用一句代码演示了前后端的交互,其中的流程又是怎样的的?

  • 当服务器跳转到"localhost:8080/javaweb/servlet"时,浏览器给服务器发出请求,服务器找到web.xml文件,然后在servlet-mapping标签中通过"/servlet"找到对应servlet-name中的ServletDemo,接着找到servlet标签下与ServletDemo相同的servlet-name,从而找到servlet-class中Servlet类的地址,进而将该Servlet类加载进JVM。
  • JVM加载字节码,该Servlet类中的doGet方法中的response会被执行,响应浏览器的请求,同时给浏览器传输"Hello Servlet"的资源,浏览器接收后打印在页面上。

在这里插入图片描述

Servlet实现类

在这里插入图片描述

Servlet映射路径问题

1.一般情况下我们都会指定一个URL , 一个URL对应一个请求
2.通配问题
	/* :不报错
	*.do

Reponse需要掌握

重定向

将这个请求,转换到另一个地址;

比如,我们请求 : http://localhost:8080/servlet01/dasdasdasda/aaaa.do 他会跳转到百度首页;

//通过响应对象重定向页面
resp.sendRedirect("404.jsp");

ServletContext

在这里插入图片描述

通过servletContext对象实现数据共享

通过this获得ServletContext,实现数据的共享,ServletContext中的资源会被存储到服务器中,所有的Servlet都可以访问的到。

通过servletContext对象读取网站配置文件
  1. 新建一个properties文件

    driver=com.mysql.jdbc.Driver
    username=root
    password=123456
    url=jdbc:mysql://localhost:3306/smbms
    
  2. 编写servlet类

    package com.kuang.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.util.Properties;
    
    //读取properties配置文件
    public class ServletDemo03 extends HttpServlet {
         
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         
            doPost(req,resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         
            //读取配置文件
    
            //1.获得配置文件的路径
            String realPath = this.getServletContext().getRealPath("/WEB-INF/classes/resources/database.properties");
            System.out.println("取得的路径为:"+realPath);
    
            Properties properties = new Properties();
            FileInputStream is = new FileInputStream(realPath);
    
            properties.load(is);//把文件流加载到配置文件的对象中;
    
            String driver = properties.getProperty("driver");
            String username = properties.getProperty("username");
            String password = properties.getProperty("password");
            String url 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值