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相关推荐

  1. JAVA WEB篇4——Filter、Listener

    JAVA WEB篇4--Filter.Listener 1.Filter Filter本意为"过滤"的含义,是JavaWeb的三大组件之一,三大组件为:Servlet.Filter ...

  2. JAVA WEB篇3——JSP

    JAVA WEB篇3--JSP 1.JSP是什么 JSP是Java Server Pages的简称,跟Servlet一样可以动态生成HTML响应, JSP文件命名为 xxx.jsp 与Servlet不 ...

  3. JAVA WEB篇1——初识JAVAWEB

    JAVA WEB篇1--初识JAVAWEB JavaWeb主要指使用Java语言进行动态Web资源开发技术的统称,是解决相关Web互联网领域的技术总和 1.Http协议 HTTP协议(HyperTex ...

  4. Java Web 应用实例 servlet实现oracle 基本增删改查

    原文地址为: Java Web 应用实例 servlet实现oracle 基本增删改查 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 , ...

  5. Java Web——基于Jsp+Servlet的大学生社团管理系统

    JavaWeb课程设计+JavaWeb实训作业:(Jsp+Servlet+Mysql+Tomcat+Idea) 项目类型:JAVA WEB项目 用户类型:3个角色(管理员+社长+学生) 主要技术:Js ...

  6. java web开发(servlet传递数据给jsp)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 实际开发中,servlet多用于controller,jsp多用于view.之前,我们谈过了怎么 ...

  7. JAVA Web学习之servlet开发

    01.servlet开发入门 动态web资源开发有两种技术:Servlet和JSP,只有把Servlet学明白了才能学JSP. Sun公司在其API中提供了一个Servlet接口,用户若想用一个动态w ...

  8. 2017 Java开发面试题-Java Web篇(1)

    1.Tomcat优化经验 参考解答:http://blog.csdn.net/itcast_cn/article/details/48949233 1.去掉对web.xml的监视,把jsp提前编辑成S ...

  9. java web总结:servlet

    一,Servlet 简介 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间 ...

最新文章

  1. 我的一天:时间都去哪了?
  2. PHP扩展开发系列01 - 我要成为一名老司机
  3. python爬网页数据到 excel 自动化_Selenium2+python自动化之读取Excel数据(xlrd)
  4. setwindowshookex回调函数不执行_不一样的“悬停几秒后执行函数”?一个开源工具函数,请注意查收...
  5. java修饰符总结,java访问修饰符总结
  6. 余玄相似度,TF-IDF
  7. shopee虾皮科技测试工程师第一次笔试
  8. 顶岗实习周记java方向_会计学院顺利召开2021届毕业生顶岗实习动员大会
  9. java excel 取值_java实现Excel 单元格取值工具类
  10. 每周更新学习进度表--第九周
  11. (附源码)springboot通用数据展示系统 毕业设计 200934
  12. Python让AI虚拟主播接入微软Azure语音合成并精准嘴型同步
  13. ARM 体系架构及其工作原理
  14. 计算机如何设置桌面文件筐,360安全桌面怎么设置文件筐 自定义分框其实非常简单...
  15. 【盘点】2017美国人工智能专业最好的20所大学(附地理位置)Ⅱ
  16. 设置iSCSI的发起程序(客户端)(三)
  17. 腾讯2020校园招聘-后台
  18. 修改计算机显示颜色16位色,教你win10怎么调成16位色
  19. Linux修改localhost
  20. KISSY基础篇乄KISSY之IO(2)

热门文章

  1. python 添加图例_Python | 在图例标签中添加Sigma
  2. 百度地图手机和电脑不一致_你可能不知道的电脑手机冷知识
  3. oracle变量名,Oracle中的替换变量,变量名,变量名
  4. Net和T-sql中的日期函数操作
  5. 【Python】输入任意个数元素并保存至列表
  6. Python函数定义变量报错:local variable ‘a‘ referenced before assignment
  7. c语言sort函数排序二维数组,js 二维数组排序sort()函数
  8. linux 源码目录结构,分析Android 源代码编译前后的目录结构
  9. python提示对话框自动关闭_Python实现定时自动关闭的tkinter窗口方法
  10. mysql导入数据提前修改字段_复习MySQL③导入数据、检查及修改