Serclet java常用的方法以及注释(配web.xml 配置代码)

Stella981
• 阅读 563

Serclet 是一个容器接口,可以实现Serclet接口来达到简单的Web和Tomcat之间的交互

1,web.xml配置代码以及说明

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<!-- Web应用的初始化参数,相当于全局的,任何都可以用 -->
<context-param>
<param-name>driver</param-name>
<param-value>oracle.jdbc.DriverManager</param-value>
</context-param>
<!-- 配置和映射Servelt ,只有当前helloServelt能获取 -->
<servlet>
<!-- 注册的名字 -->
<servlet-name>helloServelt</servlet-name>
<!-- 类的权限类名 -->
<servlet-class>servlet.HelloServlet</servlet-class>
<!-- 配置servlet的初始化参数,此节点必须放在 load-on-startup节点之前 -->
<init-param>
<param-name>user</param-name>
<param-value>huhu</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>1234</param-value>
</init-param>
<!-- 可指定servlet被创建的时机 :为负数则在第一次访问时创建,为0或正数则在servlet加载进servlet容器时创建,且越小先被创建 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<!-- 跟 servlet 节点的servlet-name节点的text一致 -->
<servlet-name>helloServelt</servlet-name>
<!-- 映射具体的访问路径 /代表访问当前Web应用的根目录 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>

</web-app>

2,Servlet实现类常用的方法及说明

package servlet;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

/**
* Servlet的实现以及一些常用方法注释
* 
* @author SmartTiger
* @created 2018年10月15日 下午4:33:31
*/
public class HelloServlet implements Servlet {

// 当前Web应用关闭时启动的方法
@Override
public void destroy() {
}

@Override
public ServletConfig getServletConfig() {

return null;
}

@Override
public String getServletInfo() {
return null;
}

// 初始化配置信息
@Override
public void init(ServletConfig servletConfig) throws ServletException {
// 知道名字的情况下求值
String initParameter = servletConfig.getInitParameter("user");
String initParameter2 = servletConfig.getInitParameter("password");
System.out.println("user:" + initParameter + " " + "password:" + initParameter2);
// 不知道名字的情况下,求所有,然后遍历
Enumeration<String> initParameterNames = servletConfig.getInitParameterNames();
while (initParameterNames.hasMoreElements()) {
String name = initParameterNames.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println("name:" + name + " " + "value:" + value);
}
// 获取servletContext(全局初始化信息)
ServletContext servletContext = servletConfig.getServletContext();
// 1.获取当前Web应用的初始化信息
String driver = servletContext.getInitParameter("driver");
System.out.println("driver:" + driver);
// 2.获取当前Web应用下在服务器上的文件的绝对路径
String realPath = servletContext.getRealPath("/web.xml");
System.out.println("realPath:" + realPath);
// 3.获取当前Web应用下的应用的名称
String contextPath = servletContext.getContextPath();
System.out.println("contextPath:" + contextPath);
// 4.获取当前Web应用下文件的输入流(/WEB-INF/classes)
InputStream resourceAsStream = servletContext.getResourceAsStream("/WEB-INF/classes/lianxi.properties");
System.out.println("resourceAsStream:" + resourceAsStream);
}

// 每一次请求时调用的方法
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
// 设置编码格式
request.setCharacterEncoding("utf-8");
// 获取请求内容(request相关的方法)
// 1,在知道name的情况下获取value
String parameter = request.getParameter("名字");
System.out.println(parameter);
// 2,不知道名字的情况下:先求名字的集合
Enumeration<String> parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()) {
String name = parameterNames.nextElement();
System.out.println(name + " " + request.getParameter(name));
}
// 获取该name下的value集合:例如html中的多选框
String[] parameterValues = request.getParameterValues("interesting");
for (int i = 1; i < parameterValues.length; i++) {
System.out.print(" " + parameterValues[i]);
}
// 获取值的键值对,键为名字,值为值的数组
Map<String, String[]> map = request.getParameterMap();
System.out.println(Arrays.toString(map.get("姓名")));
System.out.println(Arrays.toString(map.get("熟悉技能")));
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
// 获取请求URL
System.out.println(httpServletRequest.getRequestURL());
// 获取请求方式
System.out.println(httpServletRequest.getMethod());
// 获取GET请求方式后边的参数
System.out.println(httpServletRequest.getQueryString());
// 获取请求url-pattern
System.out.println(httpServletRequest.getServletPath());

// response:先设置响应编码格式(respose相关的方法)
response.setCharacterEncoding("GBK");
// 设置响应的内容类型:以Word为例
response.setContentType("application/x-abiword");
// 获取响应打印流
PrintWriter writer = response.getWriter();
writer.println("你好");
}

public HelloServlet() {

}
}
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
springmvc +hibernate+ spring+ maven框架搭建
一、web.xml<?xmlversion"1.0"encoding"UTF8"?<webappxmlns:xsi"http://www.w3.org/2001/XMLSchemainstance"xmlns"http://java.sun.com/xml/ns/javaee
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这