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

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() {

}
}

 

转载于:https://www.cnblogs.com/hhajj/p/9800297.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值