servlet基本使用

servlet的简介

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

为了实现项目的高内聚低耦合,在.jsp文件中没有java代码,所以我们需要使用到servlet

基本步骤:

  1. 新建java文件
  2. 实现(继承)servlet接口(类)
  3. 重写service
  4. 提供访问路径
  5. jsp跳转到其访问路径
  6. servlet的基本使用——实现
  7. 实现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
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绥彼岸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值