JAVA WEB篇2——Servlet

JAVA WEB篇2——Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写 的服务器端程序,换句话说,Servlet就是运行在服务器上的Java类。 Servlet用来完成B/S架构下客户端请求的响应处理,也就是交互式地浏览和生成数据,生成动态Web内容

1、第一个servlet程序(servlet)

导入依赖

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.0</version><scope>provided</scope></dependency>

1.1、实现Servlet

public class HelloServlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println("servlet初始化");}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("servlet被访问了");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {System.out.println("servlet销毁");}
}
<?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>hello</servlet-name><servlet-class>HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>
</web-app>

1.2、继承GenericServlet

public class HelloServlet extends GenericServlet {@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("servlet被访问了");}
}

1.3、继承HttpServlet

public class HelloServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servlet被访问了");}
}

1.4、Servlet注解

@WebServlet("/RuoyrServlet")
public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("post");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("get");}
}

2、Servlet的生命周期

创建(init): 用户第一次访问servlet创建servlet的实例.

销毁(destroy): 当项目从服务器移除,或服务器关闭的时候

3、请求参数的获取

方法声明功能介绍
String getParameter(String name)以字符串形式返回请求参数的值,如果该参数不存在,则返回空值
String[] getParameterValues( String name)返回一个字符串对象数组,其中包含给定请求参数所具有的所有 值,如果该参数不存在,则返回空值
Enumeration getParameterNames()返回包含此请求中包含的参数名称的字符串对象的枚举。如果请 求没有参数,则方法返回空枚举
Map getParameterMap()返回请求参数的键值对,一个键可以对应多个值
String getRemoteAddr()返回发送请求的客户端或最后一个代理的IP地址
int getRemotePort()返回发送请求的客户端或最后一个代理的端口号
String getRequestURI()返回此请求的资源路径信息
StringBuffer getRequestURL()返回此请求的完整路径信息
String getMethod()返回发出此请求的HTTP方法的名称,例如GET、POST
String getQueryString()返回路径后面请求中附带的参数
String getServletPath()返回此请求中调用servlet的路径部分

4、响应消息

@WebServlet("/RuoyrServlet")
public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("post");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("get");response.setCharacterEncoding("UTF8");response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();writer.write("我已收到请求");}
}

5、请求乱码处理

public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("post");System.out.println(request.getParameter("name"));System.out.println(new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF8"));response.setCharacterEncoding("UTF8");response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();writer.write("我已收到请求");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("get");}
}

6、ServletConfig、ServletContext

<?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>hello</servlet-name><servlet-class>HelloServlet</servlet-class><init-param><param-name>usernaame</param-name><param-value>admin</param-value></init-param></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping><context-param><param-name>username</param-name><param-value>ruoye</param-value></context-param>
</web-app>
public class HelloServlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println(servletConfig.getServletName());System.out.println(servletConfig.getInitParameter("username"));ServletContext servletContext = servletConfig.getServletContext();Enumeration<String> attributeNames = servletContext.getAttributeNames();while (attributeNames.hasMoreElements()){System.out.println(attributeNames.nextElement());}}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前台为html后台是asp在vs2012中建立什么,Asp.net中后台*.cs与前台JS脚本之间相互调用的几点心得...

Asp.net中后台*.cs与前台JS脚本之间相互调用的几点心得< type"text/javascript"> < type"text/javascript">一、 经 常需要在asp.net中“后台代码*.cs文件中调用javascript脚本中已经定义好的脚本函数”。基本包括一下几种办法&#xff1a;1. …

JAVA WEB篇3——JSP

JAVA WEB篇3——JSP 1、JSP是什么 JSP是Java Server Pages的简称&#xff0c;跟Servlet一样可以动态生成HTML响应&#xff0c; JSP文件命名为 xxx.jsp 与Servlet不同&#xff0c;JSP文件以HTML标记为主&#xff0c;然后内嵌Java代码段&#xff0c;用于处理动态内容 <% p…

JAVA WEB篇4——Filter、Listener

JAVA WEB篇4——Filter、Listener 1、Filter Filter本意为”过滤“的含义&#xff0c;是JavaWeb的三大组件之一&#xff0c;三大组件为&#xff1a;Servlet、Filter、 Listener过滤器是向 Web 应用程序的请求和响应处理添加功能的 Web 服务组件过滤器相当于浏览器与Web资源之…

html如何设置滚动条居中,css3内容垂直居中及垂直滚动条例子

垂直居中用得不少了&#xff0c;我在学习css3中也就碰到过了&#xff0c;在此小编就来为各位介绍css3内容垂直居中及垂直滚动条例子&#xff0c;希望文章对各位有帮助。内容垂直集中相对于内容在水平位置&#xff0c;内容在垂直方向是不好把控的&#xff0c;尤其当考虑到滚动条…

Java SSM1——Maven

Java SSM1——Maven 1、下载 maven 官网&#xff1a;https://maven.apache.org/download.cgi maven 百度云&#xff1a;https://pan.baidu.com/s/18XKbJp7P5x_BkKyc0VF0tw提取码&#xff1a;4zr9 2、安装 解压到想安装的目录下 添加环境变量 添加MAVEN_HOME变量 MAVEN_HO…

2021年广西艺术高考成绩查询,2021年广西美术高考成绩查询网址:https://www.gxeea.cn/...

【导语】2021年广西美术高考成绩查询入口开通后&#xff0c;考生可登录广西教育考试院(https://www.gxeea.cn/)高考服务平台或点击下方链接进入广西美术考成绩查询系统。具体如下&#xff1a;2021年广西美术高考成绩查询入口开通后&#xff0c;考生可以通过黑龙江教育考试院(ht…

齐浩亮 计算机科学与技术,齐浩亮

齐浩亮&#xff0c;男&#xff0c;1972年2月出生&#xff0c;计算机科学与技术系副教授&#xff0c;工学博士。2007年5月获哈尔滨工业大学计算机应用技术专业博士学位。现任黑龙江工程学院计算机应用技术研究所所长&#xff0c;哈尔滨院士专家团成员&#xff0c;YOCSEF哈尔滨20…

Java SSM篇2——框架的基本认识

Java SSM篇2——框架的基本认识 1、什么是框架 框架就是一套规范&#xff0c;既然是规范&#xff0c;你使用这个框架就要遵守这个框架所规定的约束框架可以理解为半成品软件&#xff0c;框架做好以后&#xff0c;接下来在它基础上进行开发 2、为什么使用框架 框架为我们封装…

计算机专业合成词,大学计算机论文范文大全.docx

大学计算机论文范文大全浅谈大学计算机专业英语双语教学摘要&#xff1a;本文针对计算机专业双语教学中存在的学生抵触、教师理解不足和教法单一等问题提出了改进的方案。关键词&#xff1a;计算机;英语双语教学;教育2001年&#xff0c;教育部对双语教学提出了具体明确的要求。…

Java SSM篇3——Mybatis

Java SSM篇3——Mybatis 1、JDBC存在的问题 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql 语句在代码中硬编码&#xff0c;造成代码不易维护&#xff0c;实际应用 sql 变化的可能较大&#xff0c;sql 变动需要改变java 代码查询操作时&#xff0c;需要手动将…

在职研究生计算机科学与技术考研考哪些科目,计算机在职研究生考试科目

计算机在职研究生以三种方式来报考&#xff0c;分别是同等学力申硕、中外合作办学硕士、非全日制研究生。三种报考方式考试科目不同&#xff0c;下面为大家具体介绍一下。一、同等学力申硕考试科目&#xff1a;该方式考试科目主要有两科&#xff1a;外国语和学科综合。外国语&a…

Java SSM4——Spring

Java SSM4——Spring Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器&#xff08;框架&#xff09; Spring的优势 方便解耦&#xff0c;简化开发 Spring就是一个容器&#xff0c;可以将所有对象创建和关系维护交给Spring管理 什么是耦合度&#xff1f;对象之间的关…

计算机网络子网划分路由配置实验报告,完整的子网划分与路由交换实验报告 珍藏版哦...

洛阳理工学院实验报告系别班级学号姓名 课程名称 计算机网络实验日期实验名称 子网的划分路由器的配置 成绩实验目的&#xff1a;1&#xff1a;知道如何配置路由器信息 2&#xff1a;知道如何划分子网信息实验条件&#xff1a;电脑一台 packet tracer 运行环境【实验内容】在本…

html文件怎么导出stl文件,3D建模软件导出STL文件的小技巧(一)

很多用户在提交3D模型文件的时候&#xff0c;常常有这样的困惑&#xff1a;什么是STL 格式文件&#xff0c;怎么获取STL 格式文件呢&#xff1f;STL 格式文件是在计算机图形应用系统中&#xff0c;用于表示三角形网格的一种文件格式。它也是3D打印机在执行3D打印程序时&#xf…

Java SSM篇5——SpringMVC

Java SSM篇5——SpringMVC 1、MVC模式 MVC是软件工程中的一种软件架构模式&#xff0c;它是一种分离业务逻辑与显示界面的开发思想 M&#xff08;model&#xff09;模型&#xff1a;处理业务逻辑&#xff0c;封装实体V&#xff08;view&#xff09; 视图&#xff1a;展示内容…

空中最亮的星用计算机弹数字,赤峰——夜空中最亮的星_数字展示在线

8月25日&#xff0c;赤峰新区夜景照明改造升级PPP项目在新区管委会签约&#xff0c;这标志着全国首个城市夜景照明PPP项目正式落地。一切都从这一张照片开始在一个晴朗的夜晚摄影师拍下这张夜景之后赤峰便美得一发不可收拾这就是赤峰全国首个PPP夜景照明工程。项目一期包括八家…

Java SSM6——SSM整合

Java SSM6——SSM整合 1、Mybatis 1.1、数据库准备 CREATE TABLE person(id INT PRIMARY KEY,NAME VARCHAR(10),PASSWORD VARCHAR(10) ); INSERT INTO person VALUES (1,"root","123");1.2、创建maven工程&#xff0c;导入依赖 <dependencies>&l…

计算机基础知识掌握欠缺,浅谈计算机基础课程教学

浅谈计算机基础课程教学文章基于目前高职院校计算机基础课程的现状,重点对分(本文共2页)阅读全文>>本文主要通过对高职高专计算机课程的教学研究,提出教学中注重培养高素质,技能型人才的重...(本文共1页)阅读全文>>随着我国科技的快速发展,网络技术在各个行业领域都…

JAVA分布式篇1——Linux

JAVA分布式篇1——Linux 1、linux命令 1.1、常用指令 ls   显示文件或目录 -l 列出文件详细信息l(list)-a 列出当前目录下所有文件及目录&#xff0c;包括隐藏的a(all)mkdir 创建目录 -p 创建目录&#xff0c;若无父目录&#xff0c;则创建p…

计算机仿真在电力领域的应用,仿真技术在电力系统中的应用实例

自20世纪80年代末至今&#xff0c;我国的仿真技术获得了极大的发展。在电力系统中&#xff0c;应用较多的培训仿真系统有电厂仿真、电网运行工况仿真和变电所仿真。一般说来&#xff0c;凡是需要有一个或一组熟练人员进行操作、控制、管理与决策的实际系统&#xff0c;都需要对…