JavaWeb学习笔记(3)


JavaWeb自学(3)

1、ServletContext应用

image-20210923211925792

image-20210923204736364



    url
    jdbc:mysql://localhost:3306/mybatis

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    ServletContext context = this.getServletContext();
    String url = context.getInitParameter("url");
    resp.getWriter().print(url);
}

    gp
    top.gujiakai.servlet.ServletDemo01


    gp
    /gp



    sd4
    top.gujiakai.servlet.ServletDemo04


    sd4
    /sd4

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    ServletContext context = this.getServletContext();
    System.out.println("进入了ServletDemo04");
    context.getRequestDispatcher("/gp").forward(req,resp);//转发的请求路径,调用forward()方法实现请求转发。
}

image-20210923214551998

username=rootasc;asdlkcopdsc
password=123456aslkasjoasjc
InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/top/gujiakai/servlet/aa.properties");
Properties prop = new Properties();
prop.load(is);

String username = prop.getProperty("username");
String password = prop.getProperty("password");
resp.getWriter().print(username+":"+password);

2、Response下载文件

image-20210924154230435

image-20210924173751142

FileServlet.java

package top.gujiakai.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;

/**
 * Author: Gu Jiakai
 * Date: 2021/9/24 19:12
 * FileName: FileServlet
 * Description:
 */
public class FileServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String realPath = "D:\\project\\Java\\response\\src\\main\\resources\\蔡伟.jpg";
        System.out.println("下载文件的路径:"+realPath);

        String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
        resp.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(fileName,"UTF-8"));
        FileInputStream in = new FileInputStream(realPath);

        int len=0;
        byte[] buffer= new byte[1024];
        ServletOutputStream out = resp.getOutputStream();
        while((len= in.read(buffer))>0){
            out.write(buffer,0,len);
        }

        in.close();
        out.close();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>

    
        filedown
        top.gujiakai.servlet.FileServlet
    

    
        filedown
        /down
    

3、Response验证码实现

image-20210925181307703

......

4、Response重定向

image-20210927180415979

image-20210927180828595

image-20210927180946404

RequestTest.java

package top.gujiakai.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * Author: Gu Jiakai
 * Date: 2021/9/27 18:15
 * FileName: RequestTest
 * Description:
 */
public class RequestTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        System.out.println("进入这个请求了!");
        //处理请求。
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        //重定向时候一定要注意,路径问题,否则404。
        System.out.println(username+":"+password);
        resp.sendRedirect("/r/success.jsp");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

index.jsp



Hello World!

<%--这里提交的路径,需要寻找到项目的路径--%> <%--${pageContext.request.contextPath}代表当前项目--%>
用户名:
密码:

success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



Success

5、Request应用

image-20210928172028348

image-20210928172107815

package top.gujiakai.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;

/**
 * Author: Gu Jiakai
 * Date: 2021/9/28 17:27
 * FileName: LoginServlet
 * Description:
 */
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(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");
        String password = req.getParameter("password");
        String[] hobbies = req.getParameterValues("hobbies");
        System.out.println("==================================");
        //        后台接收中文乱码问题。

        System.out.println(username);
        System.out.println(password);
        System.out.println(Arrays.toString(hobbies));
        System.out.println("==================================");

        //通过请求转发
        //        这里的/代表当前的web应用
        req.getRequestDispatcher("/success.jsp").forward(req,resp);
    }
}

image-20210928180016395