Java课题笔记~ Servlet编程

这篇具有很好参考价值的文章主要介绍了Java课题笔记~ Servlet编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Servlet编程基础

(1)什么是Servlet

Servlet是基于Java语言的Web编程技术,部署在服务器端的Web容器里,获取客户端的访问请求,并根据请求生成响应信息返回给客户端。

创建Servlet的方式,有

如下图:一般创建Servlet都是通过继承HttpServlet来实现,如图中的HelloServlet。

(类图快捷键:Ctrl + Alt + U)

Java课题笔记~ Servlet编程,Java,java,笔记,servlet,Hibernate,mybatis,开发语言,错误与异常

 1.创建一个基于Maven的web项目。

Java课题笔记~ Servlet编程,Java,java,笔记,servlet,Hibernate,mybatis,开发语言,错误与异常

2.创建java和resources文件夹

Java课题笔记~ Servlet编程,Java,java,笔记,servlet,Hibernate,mybatis,开发语言,错误与异常

3.修改web.xml的版本

Java课题笔记~ Servlet编程,Java,java,笔记,servlet,Hibernate,mybatis,开发语言,错误与异常

 

4.导入servlet的依赖

<!--servlet的依赖-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
</dependency>

Java课题笔记~ Servlet编程,Java,java,笔记,servlet,Hibernate,mybatis,开发语言,错误与异常

 

(2)Servlet的生命周期

init():当服务器启动,第一次访问Servlet的时候,servlet进行初始化

service():在服务器启动期间,可以不断的处理请求。

destroy():在服务器停止的时候,去销毁Servlet.

(3)Servlet的主要功能

(1)读取客户端发送到服务器端的显式数据(表单数据)

(2)读取客户端发送到服务器端的隐式数据(请求报头)

(3)服务器端发送显式数据到客户端(HTML)

(4)服务器端发送隐式数据到客户端(状态代码和响应报头)

Java课题笔记~ Servlet编程,Java,java,笔记,servlet,Hibernate,mybatis,开发语言,错误与异常

 

2.编写Servlet类

1.通过Servlet生成静态网页

package com.ambow.test;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 *  作用:通过Servlet,动态生成HTML网页
 * @author foxbill
 * @date 2021/11/2 10:58
 */
@WebServlet(name = "FirstServlet")
public class FirstServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("UTF-8");//设置响应的字符集格式为UTF-8
        response.setContentType("text/html");//设置响应正文的MIME类型

        PrintWriter out = response.getWriter();//返回一个PrintWriter对象,Servlet使用它来输出字符串形式的正文数据
        out.println("<!doctype html>");
        out.println("<html>");
        out.println("<head><title>动态生成的HTML文档</title></head>");
        out.println("<body>");
        out.println("<table border='0' align='center'>");
        out.println("<tr><td bgcolor='skyblue' colspan=2>动态生成HTML文档</td></tr>");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

web.xml的相关代码:

<servlet>
    <servlet-name>FirstServlet</servlet-name>
    <servlet-class>com.ambow.test.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>FirstServlet</servlet-name>
    <url-pattern>/first</url-pattern>
</servlet-mapping>

Java课题笔记~ Servlet编程,Java,java,笔记,servlet,Hibernate,mybatis,开发语言,错误与异常

 

2.通过Servlet生成动态网页

package com.ambow.test;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalTime;

/**
 * @author foxbill
 * @date 2023/8/9 16:35
 */
@WebServlet(name = "TestServlet")
public class TestServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //请求处理代码(功能:写一个动态网页)
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        LocalTime now = LocalTime.now();
        int hour = now.getHour();

        out.println("<!doctype html>");
        out.println("<html>");
        out.println("<head>");
        out.println("</head>");
        out.println("<body>");
        if (hour>0 && hour < 6){
            out.println("晚安!");
        }
        if (hour>=6 && hour <= 12){
            out.println("早安!");
        }
        if (hour>12){
            out.println("午安!");
        }
        out.println("</body>");
        out.println("</html>");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

web.xml的相关代码:

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.ambow.test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/test</url-pattern>
</servlet-mapping>

Java课题笔记~ Servlet编程,Java,java,笔记,servlet,Hibernate,mybatis,开发语言,错误与异常

 

3.编写web.xml配置文件

(一)配置虚拟路径

1.Servlet的多重映射

方式一:

<servlet>
    <servlet-name>FirstServlet</servlet-name>
    <servlet-class>com.ambow.test.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>FirstServlet</servlet-name>
    <url-pattern>/first01</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>FirstServlet</servlet-name>
    <url-pattern>/first02</url-pattern>
</servlet-mapping>

方式二:

<servlet>
    <servlet-name>FirstServlet</servlet-name>
    <servlet-class>com.ambow.test.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>FirstServlet</servlet-name>
    <url-pattern>/first01</url-pattern>
    <url-pattern>/first02</url-pattern>
</servlet-mapping>

2.映射路径中使用通配符,格式有两种 :

*.do:优先级最低

/*

<url-pattern>*.do</url-pattern>

<url-pattern>/*</url-pattern>

<url-pattern>/test/*</url-pattern>

3.缺省Servlet : /

缺省servlet其实就是servlet-mapping元素中url为/的servlet,在tomcat安装目录中:conf下的web.xml中有这样一个代码:

<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

缺省Servlet的作用就是处理servlet-mapping中url都匹配不到的请求。

在web访问任何资源都是在访问Servlet,当访问tomcat服务中的某个静态html文件和图片时,实际上是在访问这个缺省的servlet。

如果在web应用下的web.xml没有1.html对应的url-pattern,也就是没有相对应的servlet,服务器则会运行缺省servlet,由该servlet对应的org.apache.catalina.servlets.DefaultServlet类将1.html静态页面的数据读取出来显示到页面上。

把上述中的代码注释掉,重启tomcat服务器,输入http://localhost:8080 ,将发现页面中的图片将显示不出,也即是因为这个原因。文章来源地址https://www.toymoban.com/news/detail-644832.html

到了这里,关于Java课题笔记~ Servlet编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [JAVA EE ]创建Servlet——继承HttpServlet类笔记3

    Response 一、响应行 组成:协议/版本 响应状态码 状态码描述 响应状态码:服务器告诉客户端浏览器本次请求响应的一个状态,都是三位数 1xx:服务器接收客户端消息,但是没有接收完成,等待一段时间后,发送1xx状态码 2xx:成功,200 3xx:重定向。302重定向,304访问缓存

    2024年02月03日
    浏览(40)
  • java servlet 农机租赁网站系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

    一、源码特点     java servlet  农机租赁网站系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助 系统采用 serlvet+dao+bean 模式开发 ,系统具有完整的源代码和数 据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用

    2024年02月02日
    浏览(48)
  • java 课程签到管理系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目

    一、源码特点     java 课程签到管理系统是一套完善的java web信息管理系统 采用serlvet+dao+bean,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java 课程签

    2024年02月19日
    浏览(36)
  • java 宠物在线商城系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目

    一、源码特点     java 宠物在线商城系统是一套完善的java web信息管理系统 servlet+dao+bean mvc模式,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java 宠物

    2024年02月20日
    浏览(41)
  • Servlet | Servlet原理、开发第一个带有Java小程序Servlet

    ✅作者简介:一位材料转码农的选手,希望一起努力,一起进步!  📃个人主页:@每天都要敲代码的个人主页 🔥系列专栏:Web后端 | Servlet 目录 一:模拟实现Servlet 二:开发第一个带有Java小程序Servlet【重点】 有了上一章节的分析,我们来模拟实现以下Servlet;下面先分析一

    2024年02月02日
    浏览(44)
  • java: 程序包javax.servlet不存在、 java: 程序包javax.servlet.http不存在 java: 程序包javax.servlet.annotation不存在

    一般是JDK里没有servlet.api这个jar包,没有扫描到。可以先从你的tomcat的lib包下找,但我的这个里面是没有的,但我之前下过所以可以直接拷贝 然后找到你的jdk位置,不知道自己jdk位置的可以按照一下步骤打开      复制路径然后从文件夹打开,然后塞入你的jar即可。然后再编

    2024年02月10日
    浏览(40)
  • 毕业设计课题——基于原生servlet和jdbc的学生信息管理系统,前端使用layui

    使用原生 servlet作为后端进行开发 后端采用纯servlet进行开发,同时搭配原生的jdbc,整个架构没有使用任何框架,可以说是非常原始了; 验证码工具类可以返回验证码图片和验证码内容,数据库连接工具类可以返回一个数据库连接和关闭数据库连接的方法(但是封装和设计模

    2024年02月19日
    浏览(53)
  • Java Servlet 技术

    一、Servlet 简介 Servlet 是 JavaEE 的规范之一,通俗的来说就是 Java 接口,将来我们可以定义 Java 类来实现这个接口,并由 Web 服务器运行 Servlet ,所以 TomCat 又被称作 Servlet 容器。 Servlet 提供了动态 Web 资源开发技术,一种可以将网页数据提交到 Java 代码,并且将 Java 程序的数

    2024年02月11日
    浏览(39)
  • java:Servlet

    我们访问浏览器访问一个地址,最终是访问到了这个 java 类,而 java 是运行在 Tomcat 上的,所以 Tomcat 作为一个服务器会把这个访问地址指向这个类中,这个类就是 Servlet,Servlet 就是一个具有一定规范的类,具体规范后面会说。 创建JavaEE项目 定义一个类,实现Servlet接口 pub

    2024年02月11日
    浏览(47)
  • java # Servlet

    Servlet是javaEE规范之一。规范就是接口。JavaWeb三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。Servlet是运行在服务器上的一个Java小程序,它可以接收客户端发送来的请求,并响应数据给客户端。 执行Servlet构造器方法(只在第一次创建Servlet程序会调用) 执行init初始

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包