Servlet
package com.tledu.zrz.controller;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* 1创建项目
* 2创建class
* 3实现servlet接口
* 4覆写对应的方法
* 5注册和映射
* 6请求响应
* @author 峰峰爱流口水
*@Date 2021年3月16日
*/
//实现servlet接口
public class _01_HelloServlet implements Servlet{
@Override
public void init(ServletConfig arg0) throws ServletException {
//初始化数据,执行servlet方法之前执行,并只执行一次
// TODO Auto-generated method stub
System.out.println("init--初始化了数据");
}
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
//请求执行service,每次请求都会执行
System.out.println("处理逻辑请求的地方 --- servlet");
//设置响应类型和编码
response.setContentType("text/html;charset = utf-8");
//响应一个a标签
response.getWriter().write("<a href = 'http://www.baidu.com'>百度</a>");
}
@Override
public void destroy() {
// TODO Auto-generated method stub
//用于资源销毁,最后执行,只执行一次
System.out.println("销毁");
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
}
RequestApI
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* 1. 获取请求行数据
* GET /day14/demo1?name=zhangsan HTTP/1.1
* 方法:
1. 获取请求方式 :GET
* String getMethod()
2. (*)获取虚拟目录:/day14
* String getContextPath()
3. 获取Servlet路径: /demo1
* String getServletPath()
4. 获取get方式请求参数:name=zhangsan
* String getQueryString()
5. (*)获取请求URI:/day14/demo1
* String getRequestURI()
* StringBuffer getRequestURL()
6. 获取协议及版本:HTTP/1.1
* String getProtocol()
7. 获取客户机的IP地址:
* String getRemoteAddr()
*/
//1获取请求方式GET
String method = request.getMethod();
System.out.println(method);
//2获取虚拟目录/Servlet01
//根目录
System.out.println(request.getContextPath());
//3获取请求路径
System.out.println(request.getServletPath());
//4获取get方式请求参数 name = 123
System.out.println(request.getQueryString());
//5 获取URI 基于服务器的相对路径 /Servlet01/requestAPI_01
System.out.println(request.getRequestURI());
//6 获取URL 基于服务器的绝对路径http://localhost:8080/Servlet01/requestAPI_01
System.out.println(request.getRequestURL());
//7版本
System.out.println(request.getProtocol());
//IP
System.out.println(request.getRemoteHost());
//9端口
System.out.println(request.getRemotePort());
doGet和doPost
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("正在使用doget请求");
//设置字符编码
req.setCharacterEncoding("UTF-8");
//获取参数
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println(username+":"+password);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("正在使用doPost请求");
//设置字符编码
req.setCharacterEncoding("UTF-8");
//获取参数
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println(username+":"+password);
}