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() {}
}
JAVA WEB篇2——Servlet相关推荐
- JAVA WEB篇4——Filter、Listener
JAVA WEB篇4--Filter.Listener 1.Filter Filter本意为"过滤"的含义,是JavaWeb的三大组件之一,三大组件为:Servlet.Filter ...
- JAVA WEB篇3——JSP
JAVA WEB篇3--JSP 1.JSP是什么 JSP是Java Server Pages的简称,跟Servlet一样可以动态生成HTML响应, JSP文件命名为 xxx.jsp 与Servlet不 ...
- JAVA WEB篇1——初识JAVAWEB
JAVA WEB篇1--初识JAVAWEB JavaWeb主要指使用Java语言进行动态Web资源开发技术的统称,是解决相关Web互联网领域的技术总和 1.Http协议 HTTP协议(HyperTex ...
- Java Web 应用实例 servlet实现oracle 基本增删改查
原文地址为: Java Web 应用实例 servlet实现oracle 基本增删改查 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 , ...
- Java Web——基于Jsp+Servlet的大学生社团管理系统
JavaWeb课程设计+JavaWeb实训作业:(Jsp+Servlet+Mysql+Tomcat+Idea) 项目类型:JAVA WEB项目 用户类型:3个角色(管理员+社长+学生) 主要技术:Js ...
- java web开发(servlet传递数据给jsp)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 实际开发中,servlet多用于controller,jsp多用于view.之前,我们谈过了怎么 ...
- JAVA Web学习之servlet开发
01.servlet开发入门 动态web资源开发有两种技术:Servlet和JSP,只有把Servlet学明白了才能学JSP. Sun公司在其API中提供了一个Servlet接口,用户若想用一个动态w ...
- 2017 Java开发面试题-Java Web篇(1)
1.Tomcat优化经验 参考解答:http://blog.csdn.net/itcast_cn/article/details/48949233 1.去掉对web.xml的监视,把jsp提前编辑成S ...
- java web总结:servlet
一,Servlet 简介 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间 ...
最新文章
- 我的一天:时间都去哪了?
- PHP扩展开发系列01 - 我要成为一名老司机
- python爬网页数据到 excel 自动化_Selenium2+python自动化之读取Excel数据(xlrd)
- setwindowshookex回调函数不执行_不一样的“悬停几秒后执行函数”?一个开源工具函数,请注意查收...
- java修饰符总结,java访问修饰符总结
- 余玄相似度,TF-IDF
- shopee虾皮科技测试工程师第一次笔试
- 顶岗实习周记java方向_会计学院顺利召开2021届毕业生顶岗实习动员大会
- java excel 取值_java实现Excel 单元格取值工具类
- 每周更新学习进度表--第九周
- (附源码)springboot通用数据展示系统 毕业设计 200934
- Python让AI虚拟主播接入微软Azure语音合成并精准嘴型同步
- ARM 体系架构及其工作原理
- 计算机如何设置桌面文件筐,360安全桌面怎么设置文件筐 自定义分框其实非常简单...
- 【盘点】2017美国人工智能专业最好的20所大学(附地理位置)Ⅱ
- 设置iSCSI的发起程序(客户端)(三)
- 腾讯2020校园招聘-后台
- 修改计算机显示颜色16位色,教你win10怎么调成16位色
- Linux修改localhost
- KISSY基础篇乄KISSY之IO(2)
热门文章
- python 添加图例_Python | 在图例标签中添加Sigma
- 百度地图手机和电脑不一致_你可能不知道的电脑手机冷知识
- oracle变量名,Oracle中的替换变量,变量名,变量名
- Net和T-sql中的日期函数操作
- 【Python】输入任意个数元素并保存至列表
- Python函数定义变量报错:local variable ‘a‘ referenced before assignment
- c语言sort函数排序二维数组,js 二维数组排序sort()函数
- linux 源码目录结构,分析Android 源代码编译前后的目录结构
- python提示对话框自动关闭_Python实现定时自动关闭的tkinter窗口方法
- mysql导入数据提前修改字段_复习MySQL③导入数据、检查及修改