JavaWeb 快速入门(持续更新

文章目录

  • java web 基础
    • Servlet
      • 新建 JavaEE 项目
      • 运行 Tomcat 初始项目
      • http 请求
        • doGet 处理请求和回显
          • request
          • response
      • 生命周期
      • 路由
        • 法一:web.xml 配置路由
        • 法二:直接在当前想展示页面下配置(@WebServlet)
    • 过滤器
      • 过滤器定义
    • 监听器-Listen
    • JDBC
      • JDBC本质
      • JDBC好处
      • JDBC快速入门
      • JDBC 安全性
    • Maven
    • Mybatis

写在前面的话:
Web 狗碰到 java 题束手无策,先学点 javaweb 打打基础

java web 基础

Servlet

Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。本章内容详细讲解了web开发的相关内容以及servlet相关内容的配置使用,是JAVAEE开发的重中之重。

新建 JavaEE 项目

JavaWeb 快速入门(持续更新_第1张图片

运行 Tomcat 初始项目

JavaWeb 快速入门(持续更新_第2张图片

http 请求

创建一个类继承HttpServlet

image-20240111214524392

里面有内置方法 doGet,doPost

image-20240111214710086

image-20240111214850822

doGet 处理请求和回显
request

getParameter(name) — String 通过name获得值

getParameterValues — String[ ] 通过name获得多值

String name = request.getParameter("name");
System.out.println(name);

JavaWeb 快速入门(持续更新_第3张图片

image-20240111215504465

response

getWriter() 获得一个PrintWriter字符输出流输出数据

PrintWriter 接受符合类型数据

PrintWriter out = response.getWriter();
        out.println("");
        out.println("

" + message + "

"
); out.println(""); System.out.println("这是一条 Get 请求");

image-20240111215653168

生命周期

(init service destroy… 也都是 HttpServlet 的内置方法)

JavaWeb 快速入门(持续更新_第4张图片

路由

每次启动时默认走的是项目根目录

法一:web.xml 配置路由

JavaWeb 快速入门(持续更新_第5张图片

 <servlet>
        <servlet-name>page2</servlet-name>
        <servlet-class>com.example.servletdemo.Page2</servlet-class>
    </servlet>

<!--  路由  -->
    <servlet-mapping>
        <servlet-name>page2</servlet-name>
        <url-pattern>/page2</url-pattern> //路由规则
    </servlet-mapping>

JavaWeb 快速入门(持续更新_第6张图片

法二:直接在当前想展示页面下配置(@WebServlet)

JavaWeb 快速入门(持续更新_第7张图片

@WebServlet("/page3")

JavaWeb 快速入门(持续更新_第8张图片

过滤器

JavaWeb 快速入门(持续更新_第9张图片

Filter被称为过滤器,过滤器实际上就是对Web资源进行拦截,做一些处理后再交给下一个过滤器或Servlet处理,通常都是用来拦截request进行处理的,也可以对返回的 response进行拦截处理。开发人员利用filter技术,可以实现对所有Web资源的管理,例如实现权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

其实就是像我们做 ctf 题时碰到的 waf,不过这里给封装起来方便程序员复用开发了。

1、创建过滤器

2、过滤器内置方法

init doFilter destroy

3、过滤器触发流程(和路由差不多)

  • web.xml   
    <filter>
            <filter-name>XssFilter</filter-name>
            <filter-class>com.example.filterdemo1.filter.XssFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>XssFilter</filter-name>
            <url-pattern>/test</url-pattern>
        </filter-mapping>
    
  • @WebFilter("/xss")
    

过滤器定义

@WebFilter("/test")
public class XssFilter implements Filter {
    @Override
    //中间件启动后就自动运行
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("xss开启过滤");
    }

    @Override
    //中间件关闭后就自动运行
    public void destroy() {
        System.out.println("xss销毁过滤");
    }

    @Override
    //doFilter 访问路由触发的方法
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("xss正在过滤");
        //过滤代码就应该在放行前
        //如果符合就放行,不符合就过滤(拦截)
        //XSS过滤 接受参数值 如果有攻击payload 就进行拦截
        // 接受参数值 如果没有攻击payload 就进行放行
        HttpServletRequest request= (HttpServletRequest) servletRequest;
        String code = request.getParameter("code");
        if(!code.contains("
                    
                    

你可能感兴趣的:(开发日子,java)