JSP学习之Servlet

Servlet学习

在学习了服务器并成功安装后,我们知道当浏览器发送请求给服务器后,服务器会调用并执行对应的逻辑代码进行请求处理。逻辑代码是由程序员自己编写然后放进服务器进行运行,其实就是servlet程序。
1、第一个Web程序

  • 开发工具:Eclipse
  • 新建Dynamic Web Project:FirstWeb
  • 在src下新建一个类,如:com.hello.test包下的MyServlet类
  • 继承HttpServlet,并重写service方法
public class MyServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.getWriter().write("this is my servelt");
	}
}
  • 在WEB-INF包下,配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" 
    xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee                       
    					http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <!-- 配置servlet -->
    	<!-- 配置servlet路径 -->
    	<servlet>
    	    <servlet-name>my</servlet-name>
    	    <servlet-class>com.hello.test.MyServlet</servlet-class>
    	</servlet>
        <!-- 配置访问方式 -->
    	<servlet-mapping>
    	    <servlet-name>my</servlet-name>
    	    <url-pattern>/my</url-pattern>
    	</servlet-mapping>
</web-app>

注意:
(1) 两个<servlet-name>中的值必须相同,表明是一组;
(2) <servlet-class>中填写MyServlet类的全限定路径,写完按住Ctrl建,点击可以跳转到该类则说明填写正确;
(3) <url-pattern>为访问时的地址栏路径URL;

  • 将项目配置到tomcat服务器
    步骤一:打开工作空间,找到该项目,复制该目录下的WebContent文件夹里的所有内容;
    步骤二:打开tomcat的webapps文件夹,新建project空文件夹,将WebContent文件夹下的文件复制进来;
    步骤三:重新启动tomcat服务器
    步骤四:在浏览器中输入:localhost:8080/project/my
  • 总结:
    Ecplise是开发工具,通过此工具便于程序员的代码编写,真正运行的代码不是Ecplise中编写的代码,而是tomcat服务器中部署好的代码。Tomcat会根据请求自动调用对应的代码进行请求处理。

Servlet概念、介绍和运行流程

1、Servlet介绍

  • 问题
    服务器在接收到浏览器的请求后,会自动调用对应的逻辑代码进行请求处理。但是逻辑代码是由程序员编写并放到服务器中,那么服务器怎么知道如何调用并调用哪个类和哪个方法来进行请求处理。
  • 解决
    程序员在编写代码的时候如果能够按照服务器能够识别的规则进行编写,浏览器按照指定的规则进行发送请求,那么服务器就可以调用并执行相应的逻辑代码进行请求处理了。
假如tomcat底层有一个方法 public void demo(HttpServlet hs);
而我们的public class MyServlet extends HttpServlet类继承了HttpServlet,
是HttpServlet的子类,
根据/my的路径映射,就可以创建MyServlet的实例化对象,传给demo方法进行处理。
实际上使用了Java的多态机制;
  • 实现
    servlet技术
  • 概念
    狭义的servlet是指Java语言实现的一个接口,广义的servlet是指任何实现了这个servlet接口的类,一般情况下,人们将servlet理解为后者。Servlet运行于支持Java应用服务器中。从原理上讲,servlet可以响应任何类型的请求,但绝大多数情况下servlet只用来扩展基于HTTP协议的web服务器。
  • 特点
    (1)运行在支持java的应用服务器上
    (2) Servlet的实现遵循了服务器能够识别的规则,也就是服务器会自动的根据请求调用对应的servlet进行请求处理。
    (3)简单方便,可移植性强
  • 使用
    1、 创建普通的Java类并继承HttpServlet
    2、 复写service方法
    3、 在service方法中书写逻辑代码即可
    4、 在WebContent下的WEB-INF文件夹下的web.xml文件中配置servlet
  • 运行流程
    url: http: // localhost:8080/ 项目名/ url-pattern中配置的别名(在别的电脑,localhost应为ip地址)
  • 组成:
    服务器地址:端口号/webapps下的文件夹的名称/要执行的servlet的url-pattern
    或者为URL+URI
    服务器地址:端口号/虚拟项目名/servlet的别名
    URI: 虚拟项目名/servlet的别名
    URI的作用为保护servlet
    实际上应该是:
    http: // localhost:8080/project/com.hello.test.MyServlet
    但是,这样写,不安全,因为根据包名+类名可以实例化一个对象
    所以使用web.xml进行别名设置,用/my代替com.hello.test.MyServlet,找到后再执行service方法
  • 总结
    浏览器发送请求到服务器,服务器根据请求URL地址中的URI信息在webapps目录下找到对应的项目文件夹,然后在web.xml中检索对应的servlet,找到后调用并执行servlet。
发布了46 篇原创文章 · 获赞 11 · 访问量 3914

猜你喜欢

转载自blog.csdn.net/qq_42197800/article/details/92853151