Tomcat&Servlet基本使用

Tomcat

介绍

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

下载安装和卸载

官网下载:http://tomcat.apache.org/
安装:解压压缩包即可
注意:安装目录建议不要有中文和空格
卸载:删除目录就行了

Servlet

首页

在web.xml中设置

<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">
    <welcome-file-list>
        <welcome-file>duGet.html</welcome-file>
    </welcome-file-list>
</web-app>

首页为index.jsp

使用步骤

  1. 创建项目
  2. 创建class
  3. 实现 servlet接口
  4. 覆写对应的方法
  5. 注册和映射
  6. 请求/响应
public class _01_HelloServlet implements Servlet {
    @Override
    //用于初始化数据,只执行一次
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init--初始化数据");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    //每次请求都会执行
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        // 请求会执行service方法,每次请求都会执行
        System.out.println("service--逻辑操作");
        // 设置响应类型和编码
        servletResponse.setContentType("text/html;charset=utf-8");
        // 响应一个a标签
        servletResponse.getWriter().write("<a href='http://www.baidu.com'>百度</a>");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    //销毁资源,最后执行,只执行一次
    @Override
    public void destroy() {
        System.out.println("destroy--销毁");
    }
}

Servlet注册和映射

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">
    <welcome-file-list>
        <welcome-file>duGet.html</welcome-file>
    </welcome-file-list>
    <!-- servlet注册 说明你有这个类,这个类在,叫啥等 -->
    <servlet>
        <!-- servlet名字,随便写 -->
        <servlet-name>HelloServlet</servlet-name>
        <!-- 类全名(带有包名) -->
        <servlet-class>com.tledu.zrz.controller._01_HelloServlet</servlet-class>
    </servlet>
    <!-- servlet和url的映射 -->
    <servlet-mapping>
        <!-- 名字,需要和servlet注册的name一致,才可找到 -->
        <servlet-name>HelloServlet</servlet-name>
        <!-- 当请求什么的时候,去执行HelloServlet -->
        <!-- / 必须加,表示根目录,也就是WebContent -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

注解:
在类上面加上

@WebServlet("/名")

请求执行java代码

http://localhost:8080/Servlet_01/hello
Localhost 是当前电脑
8080 是tomcat容器,定位到webapps
/项目名/url 找到某个项目中的某个请求对应的java程序并执行

执行流程

在这里插入图片描述

声明周期

Servlet生命周期就是从创建Servlet对象开始一直到死亡的一个执行过程

  1. 先执行构造方法,用于创建Servlet对象
  2. 执行init()方法做初始化操作
  3. 执行service()/doGet()/doPost()方法处理真正的逻辑操作和数据交互
  4. 执行destroy()方法进行资源释放和销毁

默认是第一次请求的时候,创建对象调用init
但是 也可以指定,项目运行就立刻创建对象并初始化

<servlet>
  		<servlet-name>life</servlet-name>
  		<servlet-class>com.tledu.zrz.controller._02_ServletLife</servlet-class>
  		<!-- 设置该servlet的初始化时机,默认是 -1 第一次请求时创建对象初始化(init)
  			设置为 0 或者正整数 则是在启动tomcat的时候 就创建 对象初始化
  		 -->
  		<load-on-startup>0</load-on-startup>
  </servlet>

HttpServlet

Servlet可以相应任何类型的请求,但是绝大多数的情况下servlet只用来扩展基于HTTP协议的web服务器,所以使用Servlet可以继承HttpServlet。

  1. 把request和response对象进行了类型转换
  2. 请求转发到doGet/doPost方法中

获取请求行数据

如:

@WebServlet("/_03_RequestAPI")
public class _03_RequestAPI extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1. 获取请求方式
        System.out.println(req.getMethod());

        //2. 获取虚拟目录(根目录)
        System.out.println(req.getContextPath());

        //3. 获取请求路径
        System.out.println(req.getServletPath());

        //4. 获取get方式请求参数 name=123&pwd=root
        System.out.println(req.getQueryString());

        //5. 获取URI
        System.out.println(req.getRequestURI());

        //6. 获取URL
        System.out.println(req.getRequestURL());

        //7. 获取版本
        System.out.println(req.getProtocol());

        //8. 获取IP
        System.out.println(req.getRemoteHost());

        //9. 获取端口
        System.out.println(req.getRemotePort());
    }
}

获取请求头

@WebServlet("/_04_GetHead")
public class _04_GetHead extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取所有的请求头信息
        Enumeration<String> head = req.getHeaderNames();
        //遍历
        while (head.hasMoreElements()){
            String name = head.nextElement();
            //根据name获取值
            String value = req.getHeader(name);
            System.out.println(name+" : "+value);
        }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生管理系统可以实现学生信息的录入、查询、修改和删除等功能,以及生成学生信息的报表等。使用JSP作为页面模板,可以快速实现页面的布局和功能的展示,同时Servlet作为控制器可以对页面的请求进行处理和转发,以实现对数据库的操作,并将结果返回到页面上。而Tomcat作为Web容器,可以提供稳定的运行环境,保证系统的运行稳定性和安全性。 首先,用户可以通过JSP页面输入或修改学生信息,例如学生姓名、学号、年级、班级等。这些信息将通过Servlet传递到后端的数据库中进行保存,并通过JSP页面提示用户操作的结果,例如保存成功或失败。同时,用户可以查询学生信息,例如通过学号查询学生的基本信息、成绩等,通过Servlet实现后台查询,并通过JSP页面展示查询的结果。此外,使用Servlet还可以实现对学生信息的删除和修改,例如删除某个学生的信息,更新学生的成绩等操作。这些操作可以通过JSP页面上的按钮和表单来触发,以实现与用户的交互。 同时,学生管理系统还可以通过JSP动态生成报表,例如按照学生年级统计学生人数等,以提供对学生信息的汇总和分析功能。这些报表可以通过JSP页面上的链接来访问,并通过Servlet实现对数据的查询和处理,并将结果渲染到前端页面上,使用户能够方便地了解学生信息的组成和分布情况。 综上所述,通过使用JSP、Servlet和Tomcat,可以快速而高效地实现学生管理系统,同时保证系统稳定和安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值