servlet基本使用
servlet的简介
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
为了实现项目的高内聚低耦合,在.jsp文件中没有java代码,所以我们需要使用到servlet
基本步骤:
- 新建java文件
- 实现(继承)servlet接口(类)
- 重写service
- 提供访问路径
- jsp跳转到其访问路径
- servlet的基本使用——实现
- 实现servlet接口,并重写servlet中的方法
servlet接口
servlet的基本使用——接口(配置式,必须要在配置文件里面进行配置)
package com.servlet;
import com.sun.net.httpserver.HttpsParameters;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
public class MyServletImpl implements Servlet {
/**
* 初始化
* @param servletConfig
* @throws ServletException
*/
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
/**
* 获得连接配置
* @return servletConfig
*/
@Override
public ServletConfig getServletConfig() {
return null;
}
/**
* 服务
* @param servletRequest
* @param servletResponse
* @throws ServletException
* @throws IOException
*/
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//重写请求和响应
HttpServletRequest request =(HttpServletRequest)servletRequest;
HttpServletResponse response =(HttpServletResponse)servletResponse;
request.setCharacterEncoding("utf-8"); //设置请求编码
response.setCharacterEncoding("utf-8"); //设置响应编码
HttpSession session = request.getSession(); //得到session
Object u = session.getAttribute("username"); //得到session中的元素
if("sa".equals(u)){
session.setAttribute("user","sa"); //在session中存user
}
PrintWriter out=response.getWriter(); //得到在页面上的输出对象
out.println("写在页面上的内容");
request.getParameter("username"); //得到请求中的数据
ServletContext application = request.getServletContext(); //得到application对象
}
/**
* 获得连接详情
* @return
*/
@Override
public String getServletInfo() {
return null;
}
/**
* 销毁
*/
@Override
public void destroy() {
}
}
web.xml 配置文件
提供访问路径
当修改了配置文件时,需要重启服务器
<?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>MyServlet.impl</servlet-name>
<servlet-class>com.servlet.MyServletImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet.impl</servlet-name>
<url-pattern>/myServlet.do</url-pattern>
</servlet-mapping>
</web-app>
继承servlet类
servlet的基本使用——继承(注解式,更加方便)
package com.servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/myServlet.do")
public class MyServletExtn extends HttpServlet {
/**
* 处理get请求方法,管他那么多,都放到post里面去
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8"); //设置编码格式
resp.setCharacterEncoding("utf-8"); //设置编码格式
String username=req.getParameter("username"); //得到请求数据
HttpSession session = req.getSession();
ServletContext application = req.getServletContext(); //得到application
}
}