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

Servlet

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

Servlet

6.Servlet 6.Servlet简介
  • servlet就是sun公司开发动态web的一门技术
  • sun在这些API中提供一个接口叫做:Servlet,如果想开发一个servlet程序,只需完成两个小步骤:
    • 编写一个类,实现servlet接口
    • 把开发好的Java类部署到web服务器中

把实现了servlet接口的Java程序叫做,servlet

6.2 Hello Servlet

servlet接口sun公司有两个默认的实现类:HttpServlet

1.建立Maven

构建一个普通的Maven项目,删掉里面的src目录,在这个项目里建立moudel;这个空的工程就是Maven主工程;

2.Maven父子工程

关于Maven父子工程的理解:

​ 父项目中会有


    servlet01

3.Maven 环境优化
  • 修改web.xml文件


  

  • 将maven的结构搭建完整
    • Java
    • resource
4.编写一个servlet程序

​ 1.编写一个普通类

​ 2.实现Service接口,直接继承HttpService

public class HelloServlet extends HttpServlet {

    //由于get和post只是请求实现的不同方式,可以互相调用,业务逻辑都一样;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //ServletOutputStream outputStream = resp.getOutputStream();
        PrintWriter writer = resp.getWriter();
        writer.print("hello,servlet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}
5.编写servlet映射

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

    
        hello
        com.par.servlet
    
    
        hello
        hello
    
6.配置Tomcat

​ 见5.6

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

7.启动测试 6.3 servlet原理

servlet是由web服务器调用,web服务器在收到浏览器请求之后,会:

6.4 Mapping问题

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


    hello
    /hello

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


    hello
    /hello



    hello
    /hello2



    hello
    /hello3



    hello
    /hello4



    hello
    /hello5

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


    hello
    /hello

    resp.sendRedirect("/re/img");//重定向
}

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

相同点:

  • 页面都会实现跳转

不同点:

  • 请求转发的时候,url不会产生变化
  • 重定向的时候,url地址栏会发生变化;

用户登录

用户名:
密码:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String username = req.getParameter("username");
    String password = req.getParameter("password");

    System.out.println(username+":"+password);
    //注意路径问题 加后缀 否则会404
    resp.sendRedirect("/re/suc.jsp");
}

    Title


success!

6.7 HttpServletRequest

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

1.获取前端传递参数,请求转发

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.setCharacterEncoding("utf-8");
    //后台乱码问题
    req.setCharacterEncoding("utf-8");


    String username = req.getParameter("username");
    String password = req.getParameter("password");
    String[] hobbys = req.getParameterValues("hobbys");

    System.out.println("*******************************");
    System.out.println(username);
    System.out.println(password);
    System.out.println(Arrays.toString(hobbys));
    System.out.println("*******************************");

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

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

相同点:

  • 页面都会实现跳转

不同点:

  • 请求转发的时候,url不会产生变化 307
  • 重定向的时候,url地址栏会发生变化; 302
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352103.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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