Servlet

1. Servlet简介

        ·Servlet是一门开发动态web的技术。

        ·Sun公司在这些API中提供一个接口叫做:Servlet。开发一个Servlet程序,只需要两步:

                1⃣️编写一个类,实现Servlet接口。

                2⃣️把开发好的java类部署到web服务器中。

把实现了Servlet接口的Java程序叫做Servlet。

2. HelloServlet

        1. 构建一个普通的maven项目,删掉里面的src目录,以后就在项目里直接建立module

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

        ·父项目中会有:

<modules>
    <module>"子模块名字"</module>
</modules>

        ·子项目中会有:

<parent>
    //父项目中的GAV (groupId,artifactId,version)信息
</parent>

父项目中的Java子项目可以直击使用

3. 编写一个Servlet程序

一、编写一个普通Java类

二、实现Servlet接口,这里直接继承HttpServlet

(想用HttpServlet,要先在Pom.xml中导入 servlet-api 和 jsp-api 的依赖)

重写doGet() 方法和 doPost() 方法 的内容。

三、编写Servlet的映射

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

四、配置Tomcat

五、启动测试

4. Servlet原理

5. Mapping

6. ServletContext (基本不用,仅做了解)

web容器在启动的时候,它会为每个Web程序都创建一个对应的ServletContext对象,它代表了当前的Web应用;

·共享数据

我在这个Servlet保存的数据,可以在另外一个Servlet中拿到:

ServletContext context = this.getServletContext();

String username = "zhangsan";
context.setAttribute("username", username);            // 类似map存储形式
ServletContext context = this.getServletContext();
String username = (String) context.getAttribute("username");

resp.getWriter().print(username);            // resp 为响应参数

·获取初始化参数​​​​​​​

web.xml:

<context-param>
    <param-name>url</param-name>
    <param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param>

servlet:

ServletContext context = this.getServletContext();
String url = context.getInitParameter("url");
resp.getWriter().print(url);

·请求转发

·读取资源文件

7. HttpServletResponse

web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse对象;

·如果要获取客户端请求过来的参数:找HttpServletRequest

·如果要给客户端响应一些信息:找HttpServletResponse

·重定向                (一定要注意路径问题,否则404)

HelloServlet:

​​​​​​​ resp.sendRedirect("url")       

web.xml:

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>hello</servlet-name> 
    <url-pattern>/hello</url-pattern>
</servlet-mapping›

8. HttpServletRequest

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

·获取前端传递的参数

LoginServlet.java:

String username = req.getParameter("username");
String password = req.getParameter("password");

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

·请求转发

LoginServlet.java:

req.getRequestDispatcher("转发页面路径").forward(req,resp);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值