-
2021-08-04 16:39:09
编写Servlet的doPost方法时,需要抛出ServletExcpetion和IOException异常,不会抛出HttpServletException异常。
参考文章:
(1)编写Servlet的doPost方法时,需要抛出ServletExcpetion和IOException异常,不会抛出HttpServletException异常。
(2)https://www.cnblogs.com/xuedexin/articles/5628702.html
备忘一下。
更多相关内容 -
编写Servlet
2019-04-12 19:41:01Servlet本质上就是一个java类 Tomcat与Servlet的关系 Servlet与普通的Java程序的区别 Servlet本质上就是一个Java类 ...Servlet类必须实现接口javax.servlet.Servlet...使用Servlet2.5编写Servlet的步骤 写一...Servlet本质上就是一个java类
Tomcat与Servlet的关系
Servlet运行在Tomcat中
Servlet与普通的Java程序的区别
- Servlet本质上就是一个Java类
- Servlet类必须实现接口javax.servlet.Servlet接口
- 运行在Web容器中,tomcat就是一个Web容器。
- 能够接收浏览器发送的请求,并且做出响应给浏览器。
使用Servlet2.5编写Servlet的步骤
- 写一个类继承于HttpServlet,HttpServlet是个抽象类它已经实现了Servlet接口。
- 重写doGet或doPost方法,分别处理表单的get或post请求。
如果直接在浏览器输入地址访问,使用的是get方法。 - 编写web.xml配置文件,对Servlet进行配置,才能通过浏览器来访问。
Demo1Servlet.java
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; //1. 编写一个类继承于HttpServlet, 我们写的Servlet必须实现Servlet接口 public class Demo1Servlet extends HttpServlet { //2. 重写doGet方法 /** 用来处理浏览器发送的get请求 @param request 请求对象 @param response 响应对象 @throws ServletException @throws IOException */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置响应的类型和字符集 response.setContentType("text/html;charset=utf-8"); //得到打印流,向浏览器输出内容 PrintWriter out = response.getWriter(); out.print("<h1>Hello 第1个Servlet </h1>"); } }
编辑目录:web/WEB-INF/web.xml中配置servlet,设置访问地址为/demo1
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_3_1.xsd" version="3.1"> <!--配置servlet--> <servlet> <!--servlet的名字--> <servlet-name>demo1</servlet-name> <!--servlet的类全名--> <servlet-class>com.test.servlet.Demo1Servlet</servlet-class> </servlet> <!--配置servlet的访问地址--> <servlet-mapping> <!--与上面的名字相同--> <servlet-name>demo1</servlet-name> <!--访问地址,以/开头 --> <url-pattern>/demo1</url-pattern> </servlet-mapping> </web-app>
xml执行流程:
Servlet3.0的新特性
- 异步处理支持:在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己在不生成响应的情况下返回至容器。针对业务处理较耗时的情况,这将大大减少服务器资源的占用,并且提高并发处理速度。
- 新增的注解支持:用于简化 Servlet、过滤器(Filter)和监听器(Listener)的声明,这使得 web.xml 部署描述文件从该版本开始不再是必选的了。
- 可插性支持:开发者可以通过插件的方式很方便的扩充已有 Web 应用的功能,而不需要修改原有的应用。
- 简化了文件上传的功能:现在可以直接使用Servlet的API实现文件的上传,以前需要借助第三方上传组件。
使用Servlet3.0编写Servlet(使用注解的方式)
Demo2Servlet .java
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; //@WebServlet(name = "demo2",urlPatterns = "/demo2") @WebServlet("/demo2") public class Demo2Servlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应类型和字符集 response.setContentType("text/html;charset=utf-8"); // 获取打印流 PrintWriter out = response.getWriter(); out.println("<h1 style='color:orange'>使用Servlet 3.0</h1>"); } }
-
Servlet 编写过滤器
2021-01-03 01:54:23Servlet 编写过滤器 Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet。Servlet 过滤器也可以附加到 Java... -
JSP&Servlet选择题
2020-08-10 17:12:31Servlet选择题 日常练习题记录 1.若要针对HTTP请求撰写Servlet类别,以下何者是正确的做法() A.继承Servlet接口 B.继承GenericServlet C.继承HttpServlet D.直接定义一个结尾名称为Servlet的类别 参考答案:C 2....JSP&Servlet选择题
日常练习题记录1.若要针对HTTP请求撰写Servlet类别,以下何者是正确的做法()
A.继承Servlet接口
B.继承GenericServlet
C.继承HttpServlet
D.直接定义一个结尾名称为Servlet的类别
参考答案:C2.如何针对HTTP的GET请求进行处理与响应?()
A.重新定义service()方法
B.重新定义doGet()方法
C.定义一个方法名称为doService()
D.定义一个方法名称为get()
参考答案:B3.HttpServlet是定义在哪个包之中?()
A.javax.servlet
B.javax.servlet.http
C.java.http
D.javax.http
参考答案:B4.在Web容器中,以下哪个类别的实例代表HTTP请求对象?()
A.HttpRequest
B.HttpServletRequest
C.HttpServletResponse
D.HttpPrintWriter
参考答案:B5.在Web容器中,以下哪个类别的实例代表HTTP响应对象?()
A.HttpRequest
B.HttpServletRequest
C.HttpServletResponse
D.HttpPrintWriter
参考答案:C6.在Web应用程序中,何者负责将HTTP请求转换为HttpServletRequest对象?()
A.Servlet对象
B.HTTP服务器
C.Web容器
D.JSP网页
参考答案:C7.继承HttpServlet之后,若要进行Servlet初始化,重新定义哪个方法才是正确的作法?()
A.public void init(ServletConfig config) throws ServletException;
B.public void init() throws ServletException
C.public String getInitParameter(String name)
D.public Enumeration getInitParameterNames()
参考答案:B8.哪一个选项中可以获得Servlet的初始化参数()
A.Servlet
B.ServletContext
C.ServletConfig
D.GenericServlet
参考答案:C9.在J2EE中,对于HttpServlet类的描述,错误的是()
A.我们自己编写的Servlet继承了HttpServlet类,一定需覆盖doPost或者doGet
B.Httpservlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法
C.Httpservlet类中处理客户请求和响应时所使用的两个接口是:HttpServletRequest和HttpServletResponse
D.我们自己编写的servlet继承了Httpservlet类,一般只需要覆盖doPost或doGet方法,不必覆盖servive()方法,因为一个service()方法会调用doPost或者doGet方法
参考答案:A10.在编写Servlet时需要__________ 正确答案:()
A.继承Servlet
B.实现HttpRequestServlet
C.继承HttpServlet
D.实现HttpRequest
参考答案:C11.J2EE中,Servlet API为使用Cookie,提供了()类。
A.javax.servlet.http.Cookie
B.javax.servlet.http.HttpCookie
C.javax.servlet.HttpCookie
D.java.servlet.http.HttpCookie
参考答案:A12.以下关于Java Servlet API说法错误的是()
A.Java Servlet API是一组Java类,它定义了Web客户端和Web Servlet之间 的标准接口
B.Java Servlet API由两个包组成:javax.servlet和javax.servlet.http
C.javax.servlet.http包对http协议提供了特别的支持
D.javax.servlet包提供了对除http协议外的其他协议的支持
参考答案:D13.以下有关Servlet常用的请求头的含义说法错误的是()
A.Accept-Language头指出客户端倾向的语言。如en
B.Content-Length头以字节为单位给出POST数据的长度
C.Host表明了主机和端口
D.User-Agent头表明了发出请求的客户代理的信息
参考答案:D14.以下哪个方法不是Servlet的生命周期接口定义的?
A.init()
B.service()
C.destroy()
D.create()
参考答案:D15.Servlet程序的入口点是()
A.init()方法
B.doGet()方法
C.main()方法
D.service()方法
参考答案:A16.下述Servlet的处理流程中表述不正确的步骤是()
A.客户端发送一个请求至服务器端;服务器将请求信息发给Servlet
B.Servlet引擎,也就是ejb容器会调用Servlet的service方法
C.Servlet构建一个响应,并将其传给服务器。这个响应是动态构建的,相应的内容通常取决于客户端的请求,这个过程中也可以使用外部资源
D.服务器将响应返回给客户端
参考答案:B17.以下Servlet与CGI的对比正确的是
A.在可移植性和与平台无关性方面:Servlet和CGI都能够跨平台和不同的Web服务器交互
B.几乎所有的主流服务器都直接或通过插件支持CGI
C.从持久性和性能上讲,Servlet对于每个HTTP请求都要启动一个新进程。而传统的CGI只要被Web服务器装载一次,就能被每一个客户请求调用。因此CGI比Servlet性能更高
D.Servlet是用java编写的,它继承了Java语言的所有优点。Servlet可以利用丰富的Java库
参考答案:D18.以下有关Java servlet的特性说法错误的是()
A.servlet功能强大,可以解析HTML表单数据、读取和设置HTTP头、处理Cooke、跟踪会话状态等。在servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。
B.servlet可以与其他系统资源交互,例如它可以调用系统中其他文件、访问数据库、Applet和Java应用程序等,以此生成返回给客户端的响应内容。
C.Servlet可以是其他服务的客户端程序,例如,它们可以用于分布式的应用系统中,可以从本地硬盘,或者通过网络从远端激活servlet。
D.Servlet API是与协议相关的。Servlet只能用于http协议
参考答案:D19.Servlet的生命周期接口由以下哪个对象定义?()
A.javax.servlet.http.HttpServlet
B.javax.servlet.http.HttpSession
C.javax.servlet.Servlet
D.javax.servlet.Session
参考答案:C20.以下哪种情况可能不会初始化servlet?()
A.服务器down机后,重新装入servlet时
B.已经配置了自动装入选项,在启动服务器时自动装入servlet
C.没有配置自动装入选项,在服务器启动后,客户端首次向Servlet发出请求时
D.新客户端向Servlet发出请求时
参考答案:D -
Servlet 编写三种方式
2021-06-13 11:28:45我们在实现Servlet功能时,可以选择以下三种方式: 1. 第一种:实现Servlet接口,接口中的方法必须全部实现。 使用此种方式,表示接口中的所有方法在需求方面都有重写的必要。此种方式支持最大程度的自定义(我...Servlet编写方式
我们在实现Servlet功能时,可以选择以下三种方式:
1. 第一种:实现Servlet接口,接口中的方法必须全部实现。
使用此种方式,表示接口中的所有方法在需求方面都有重写的必要。此种方式支持最大程度的自定义(我理解的就是真的个性化)。
2. 第二种:继承GenericServlet,
继承GenericServlet,service方法必须重写,其他方可根据需求,选择性重写。
使用此种方式,表示只在接收和响应客户端请求这方面有重写的需求,而其他方法可根据实际需求选择性重写,使我们的开发Servlet变得简单。但是,此种方式是和HTTP协议无关的。
比如说下面重写了 service方法
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { HttpServletRequest request; HttpServletResponse response; try { request = (HttpServletRequest)req; response = (HttpServletResponse)res; } catch (ClassCastException var6) { throw new ServletException("non-HTTP request or response"); } this.service(request, response); }
service源码
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); long lastModified; if (method.equals("GET")) { lastModified = this.getLastModified(req); if (lastModified == -1L) { this.doGet(req, resp); } else { long ifModifiedSince; try { ifModifiedSince = req.getDateHeader("If-Modified-Since"); } catch (IllegalArgumentException var9) { ifModifiedSince = -1L; } if (ifModifiedSince < lastModified / 1000L * 1000L) { this.maybeSetLastModified(resp, lastModified); this.doGet(req, resp); } else { resp.setStatus(304); } } } else if (method.equals("HEAD")) { lastModified = this.getLastModified(req); this.maybeSetLastModified(resp, lastModified); this.doHead(req, resp); } else if (method.equals("POST")) { this.doPost(req, resp); } else if (method.equals("PUT")) { this.doPut(req, resp); } else if (method.equals("DELETE")) { this.doDelete(req, resp); } else if (method.equals("OPTIONS")) { this.doOptions(req, resp); } else if (method.equals("TRACE")) { this.doTrace(req, resp); } else { String errMsg = lStrings.getString("http.method_not_implemented"); Object[] errArgs = new Object[]{method}; errMsg = MessageFormat.format(errMsg, errArgs); resp.sendError(501, errMsg); } }
3. 第三种:继承HttpServle
继承HttpServlet,它是javax.servlet.http包下的一个抽象类,是GenericServlet的子类。如果我们选择继承HttpServlet时,只需要重写doGet和doPost方法,不要覆盖service方法。
使用第三种方式,表示我们的请求和响应需要和HTTP协议相关。也就是说,我们是通过HTTP协议来访问的。那么每次请求和响应都符合HTTP协议的规范。请求的方式就是HTTP协议所支持的方式(目前我们只知道GET和POST,而实际HTTP协议支持7种请求方式,
GET POST PUT DELETE TRACE OPTIONS HEAD
)。例如:
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; //@WebServlet(name = "thirdServlet", urlPatterns = "/servlet") //我们还可以进一步简化,因为我们发现其实name属性好像没啥用 //@WebServlet(urlPatterns = "/servlet") //到这一步之后,还可以精简到底,如果括号里面只有一个值,那么默认表示的就是urlPattern @WebServlet("/servlet") public class ThirdServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } }
-
【Servlet】Servlet显示时间和IP等信息
2021-01-20 02:13:14编写一个 Servlet ,当用户请求该 Servlet 时,显示用户于哪年哪月哪日几时几分几秒从哪个 IP 地址连接至服务器。 原创文章 698获赞 1706访问量 78万+ 关注 私信 展开阅读全文 作者:进阶的JFarmer -
移动应用服务器端开发(基于JSP技术)-2017 Servlet接口 编写Servlet程序——Servlet接口.pptx
2020-10-08 07:18:14北京电子科技职业学院Servlet接口主讲人侯海平 老师目录1. Servlet接口简介2. Servlet接口的API3. Servlet接口示例1. Servlet接口简介1Servlet接口是所有Servlet都必须直接或间接实现的接口2开发者可以通过实现该... -
Servlet编写登录
2014-07-04 17:58:50Servlet编写登录的demo,重点理解Servlet的原理 -
如何编写一个Servlet
2019-10-07 21:54:542.怎么按照JavaEE的规范编写一个servlet 关键字 作用 说明 Servlet 接口 有五个抽象方法 GenericServlet 抽象类 有一个抽象方法 HttpServlet 抽象类 没有抽象方法 ... -
编写jsp页面实现如下界面效果,然后交给servlet计算矩形的周长和面积,并输出结果。
2021-06-04 10:55:52编写jsp页面实现如下界面效果,然后交给servlet计算矩形的周长和面积,并输出结果。 -
Java Servlet编写Json自定义数据接口
2015-05-18 16:38:18Java Servlet编写JSON数据接口,简单实用的方式 -
在编写servlet时候import javax.servlet.annotation.WebServlet;问题
2018-07-17 08:54:34import javax.servlet.annotation.WebServlet;代码中这段一般会报错,显示需要自己创建一个类,才可以。 那么这这需要手动的导入相关的包才可以。 建议去你的tomcat7包中然后把lib文件夹下的jsp-api.jar 和 ... -
移动应用服务器端开发(基于JSP技术)-2017 Servlet常用类与接口的层次关系 编写Servlet程序——Servlet...
2020-10-08 07:18:06北京电子科技职业学院Servlet常用类与接口的层次关系主讲人侯海平 老师目录1. Servlet相关类与接口2. Servlet相关类与接口的层次关系3. 体会Servlet相关类与接口之间关系1. Servlet相关类与接口Servlet所在包javax.... -
Servlet学习日记2——编写第一个Servlet
2022-02-06 15:35:273.2 编写Servlet 3.3部署Servlet动态资源 3.4 配置Servlet 四、在cmd上打印一个内容的操作 五、 常见错误 一、概念 1、Servlet Server Applet的简称, 是服务器端的程序(代码、 功能实现), 可交互式的处理... -
编写Servlet时出现tomacat服务器500,服务器内部错误
2020-04-21 18:02:26问题描述 ...原因是:我在编写servlet的过程中,修改一了一下要应用的实体类的类名,并且在此servlet中使用了重命名之后的类。产生的寻找不到此类的错误。 解决 重新编写了这个实体类,重新在servlet... -
servlet所需jar包
2018-06-10 23:56:55Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。此处为javaweb开发中servlet所需jar包 -
JavaWeb——怎样编写一个Servlet程序
2021-02-03 21:05:44编写一个Servlrt程序编写Servlet映射配置Tomcat启动Tomcat服务器测试 JavaWeb——编写一个Servlet程序 1.Servlet简介 Servlet是Sun公司开发的用于交互式地浏览和生成数据,生成动态Web的技术。 狭义的Servlet是... -
编写一个servlet程序实现显示服务器当前日期的时间
2021-10-14 16:30:27package Displaytime; import java.util.*; import java.text.*; import java.io.IOException; import java.io.PrintWriter;...import javax.servlet.ServletResponse; import javax.servlet.annot -
手工编写servlet程序
2014-11-08 18:17:54在不借助IED工具的情况下,自己编写一个servlet程序并且发布到tomcat服务器,最后通过浏览器来访问. 一共分为4个步骤进行: 步骤1:下载tomcat,并且在tomcat的webapps目录下新建一个应用,然后在应用里新建... -
在IDEA环境中开发Servlet程序
2022-02-03 20:01:201、创建工程 1.1 New Project 创建一个空的新工程 1.2 创建一个新的模块 模块选择javaSe 给模块命名 1.3 将javaSe模块变成Webapp的模块(符合servlet规范的module) ...add framework Support1.3.2...2、编写servlet类 -
编写一个servlet,实现统计网站被访问次数的功能
2021-10-29 19:23:25编写一个servlet,实现统计网站被访问次数的功能 package ch5; import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.... -
用Idea轻松编写servlet
2019-05-12 16:06:27Servlet是按照Servlet规范编写的Java类 Servlet是Web应用的一个组件 Servlet由容器tomcat管理 Servlet扩展了服务器的功能 Servlet可以生成动态的Web页面 Servlet产生在JSP之前 Servlet 功能特点 当客户机... -
Servlet的编写
2014-09-19 12:38:27Servlet的编写 -
JavaWeb新版教程Servlet-1目-编写UserDao和测试.avi
2022-05-18 05:22:44JavaWeb新版教程Servlet-1目-编写UserDao和测试.avi -
如何编写jdk1.6的Servlet
2014-08-18 12:08:26在JSP之前应该了解Servlet,这一点很重要,因为是MVC模式是Servlet调用JSP。 -
jsp+servlet编写的留言板项目
2014-06-16 23:10:14基于jsp+servlet+java技术编写的留言板项目,包括源代码,数据库,和文档说明,有助于大家对jsp、servlet更进一步的认识和运用 -
当编写Servlet时出现type Status report message ...
2017-03-08 18:05:12import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; -
JSP+Servlet+Javabean+Mysql 学生成绩管理系统
2019-11-10 10:56:21本系统以MVC架构搭建,采用JSP+Servlet+Javabean+Mysql技术实现,软件界面美观友好,并且本资源包含有.sql脚本,可直接导入数据库生成系统所需要的表,无需做更改,即可使用。 -
编写servlet的步骤与doGet方法,doPost方法
2018-09-13 19:36:001.编写servlet步骤: 1.1 创建一个servlet类继承HttpServlet,在类中重写doGet方法和doPost方法。 1.2 在web.xml中配置MyServlet,作用:(让浏览器发出的请求知道到达哪个servlet,也就是让tomcat将封装好的...