栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb-05-Servlet

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb-05-Servlet

目录

1.Servlet简介

1.1 Servlet概述

1.2 HelloServlet

1.3、Servlet原理

1.4 Mapping问题

1.5 ServletContest

1.6 HttpServletResponse

1.6.1 简单分类

1.6.2 常见应用

1.6.3 验证码功能

1.6.4 实现重定向

1.7 HttpServletRequest

1.7.1 获取前端传来的参数


1.Servlet简介

1.1 Servlet概述

      1.  servlet就是sun公司开动态web的一门技术

        2.sun公司在这些API中提供了一个接口叫做:servlet,如果想开发一个servlet程序,只需要完成两个小步骤:

                (1)编写一个类,实现servlet接口

                (2)把开发好的Java类部署web服务器中

        把实现了servlet接口的java程序叫做:servlet

1.2 HelloServlet

        Servlet接口Sun公司有两个默认的实现类:HttpServlet,GenericServlet

1.构建一个普通的Maven项目,删掉里面的src目录,这个空的工程就是Maven主工程。

2.关于Maven父子工程的理解:

        父项目中会有:


        servlet-01

        子项目会有:


        JavaWebStudy
        com.liu
        1.0-SNAPSHOT

        父项目中的java子项目可以直接使用

son extends father

 3.Maven环境优化

        1.将web.xml为最新的



        2.将maven的结构搭建完整

4.编写一个Servlet程序

        1.编写一个普通类

        2.实现servlet接口,这里我们直接继承HttpServlet

        ps:ctrl+鼠标左键(查看源码)

public class HelloServlet extends HttpServlet {
    //由于get或者post只是请求实现的不同方式,可以互相调用,业务逻辑都一样
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter writer=response.getWriter();//响应流
        writer.print("Hello Servlet");
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

5.编写Servlet的映射

        为什么需要映射:我们写的是JAVA程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的Servlet,还需要给他一个浏览器能够访问的路径。

    
    
        HelloServlet
        com.liu.servlet_01.HelloServlet
    
    
    
        HelloServlet
        /hello
    

6.配置Tomcat

        注意:配置项目发布的路径就可以了。

7.启动测试,OK

1.3、Servlet原理

1.4 Mapping问题

1.一个Servlet可以指定一个映射路径


        HelloServlet
        com.liu.servlet_01.HelloServlet

2.一个Servlet可以指定多个映射路径(这几个路径指向同一个页面)


        HelloServlet
        /hello
    
    
        HelloServlet
        /hello2
    
    
        HelloServlet
        /hello3

3.一个Servlet可以指定通用映射路径


        HelloServlet
        /hello
        //重定向
        response.sendRedirect("/responseStudy/image");
    }

面试题:请你聊聊重定向和转发的区别?

相同点:页面都会实现跳转。

不同点:        

        请求转发的时候,URL不会发生变化。307

        重定向的时候,地址栏会发生变化。302

       

1.7 HttpServletRequest

        HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,Http请求中的所有信息会被封锁到HttpServletRequest,通过这个HttpServletRequest的方法,获取客户端的所有信息。

1.7.1 获取前端传来的参数

 ps:解决中文问题的代码,需要写在输出前面,不然会不起作用。

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //解决中文乱码问题
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String[] hobbys = request.getParameterValues("hobbys");
        System.out.println("--------------------------------");
        System.out.println(username);
        System.out.println(password);
        System.out.println(Arrays.toString(hobbys));
        System.out.println("--------------------------------");
        //请求转发
        //这里的 / 代表当前的web应用
        request.getRequestDispatcher("/success.jsp").forward(request,response);
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号