web应用开发技术的一些概念

一、Servlet

1.Servlet的工作过程:

Servelt的工作流程示意图


(1)客户端发起一个Http请求 到服务器,请求特定的资源或者是要执行特定的操作

(2)服务器在接收到请求 后,根据请求相应的URL将请求分发给相应的Servlet容器

(3)Tomcat加载并初始化Servlet,然后调用service()方法处理请求,根据请求的类型执行相应的操作处理,最后将生成内容返回给服务器,服务器再把它发送到客户端,


ps:也就是说Servlet的工作过程是接收客户端请求、处理请求然后生成响应返回给客户端,从而实现动态的web页面与用户交互

2.常用的Servlet配置方法:

(1)@WebServlet注解方式

web.xml文件中使用<servlet>和<servlet-mapping>标签来配置Servlet。

  • 在<servlet>标签中指定Servlet类的名称和路径。
  • 在<servlet-mapping>标签中指定Servlet的URL映射。
javascript 复制代码
<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.example.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/myservlet</url-pattern>
</servlet-mapping>

(2)web.xml文件

在Servlet类上使用@WebServlet注解来指定Servlet的URL映射和其他配置信息。比如:

java 复制代码
@WebServlet(name = "MyServlet", urlPatterns = {"/myservlet"})
public class MyServlet extends HttpServlet {
    // Servlet code
}

(3)自定义容器

如果使用Spring框架,可以通过配置文件或注解来配置Servlet。在Spring配置文件中使用<bean>标签来配置Servlet,或者在Servlet类上使用@Controller或@RequestMapping注解来指定URL映射。

java 复制代码
<bean id="myServlet" class="com.example.MyServlet" />
java 复制代码
@Controller
@RequestMapping("/myservlet")
public class MyServlet {
    // Servlet code
}

3.Servlet生命周期方法:

(1)初始化调用init()方法

当Servlet被实例化时调用,用于初始化Servlet。在这个方法中通常进行一些初始化操作,比如加载配置文件、建立数据库连接等。


(2)请求Servlet服务调用service()方法

每次有请求到达Servlet时都会调用这个方法。在这个方法中处理请求并生成响应。


(3)销毁实例前调用destory()方法

当Servlet被销毁时调用,用于释放资源。在这个方法中通常进行一些清理操作,比如关闭数据库连接、释放内存等。

二、会话管理

1.对比session与cookie的异同。

|---------|---------------------|----------------------|
| 相同点 | session和cookie都是同于保存会话数据的对象,并且都能用于客户端与服务器之间数据传递,通常会话会将用户的id号以cookie的方式存放在浏览器中进行用户的身份识别,而且两者都与一个用户对应只是在不同的作用域工作。 ||
| 不同点 | cookie | session |
| 不同点 | 存储在浏览器的缓冲区 | 存储在服务器端 |
| 不同点 | 相对不安全,因为内容可以被用户修改 | 用户没有权限修改,因此安全性高 |
| 不同点 | 可以设置过期时间,可以长期保存在客户端 | 会随着用户的下线或关闭浏览器、超时而失效 |
| 不同点 | 存放在客户端可以减轻服务器负担 | 存放在服务器端对服务器的性能要求更高 |

2.与过滤器有关的3个接口:

|----------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| javax.servlet.Filter | 过滤器接口 | 定义了过滤器的生命周期方法和过滤方法,包括init()、doFilter()和destroy()。 |
| javax.servlet.FilterChain | 过滤器链接口 | 用于在过滤器中调用下一个过滤器。它的doFilter()方法允许过滤器将请求传递给下一个过滤器,或者如果没有下一个过滤器,则将请求传递给Servlet。 |
| javax.servlet.FilterConfig | 过滤器配置接口 | 用于获取过滤器的初始化参数和ServletContext。它的方法可以让过滤器获取在部署描述符中配置的初始化参数,以及访问ServletContext对象。 *** ** * ** *** 常用方法有三个: getFilterName()、getInitParameter(String name )和 getServletContex() |

3.Servlet监听器是个可以监听web应用程序内部事件的Java类.相应的监听器有哪几种,各实现哪些监听?

|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Servlet上下文事件 | |-----------------------------------|----------------------| | ServletContexListener接口 | 对servletcontext创建和删除 | | ServletContextAtrributeListener接口 | Servletcontext属性增删改 | |
| 会话事件 | |--------------------------------|--------------------| | HttpSessionAtrributeListener接口 | 用于监听Http会话中属性设置 | | HttpServletListener接口 | 用于监听会话的创建和销毁 | | HttpSessionBingdingListener接口 | 用于监听对象本身绑定或删除到一个会话 | |
| 请求事件 | |-----------------------------------|--------------| | ServiceRequestListener接口 | 用于监听每次请求到来 | | ServletRequestAttributeListener接口 | 用于跟踪请求属性的增删改 | |

三、JSP

1.JSP的隐式对象:

JSP的隐式对象有九个,它们分别是:

|-------------------|-----------------------------|
| out对象 | 向客户端发送文本内容 |
| request对象 | 存储客户端的请求 |
| response对象 | 存储响应客户端时要发送的信息 |
| session对象 | 存储用户会话信息 |
| application对象 | 作用在JSP页面所属的应用程序 |
| pageContext对象 | 使用户在访问页面作用域中可以定义所有的隐式对象 |
| page对象 | 正在运行的JSP页面所产生的类对象 |
| config对象 | 存储Servlet信息(编译JSP页面过程中所创建的) |
| exception对象 | 处理异常信息 |

2.JSTL标签有哪些优点?

第一,可以简化JSP和WEB程序的开发,让本来需要大量代码才能实现的功能可以通过少量JSTL代码便可以实现;

第二,可读性高,在团队开发中方便他人查看代码,并且易于理解;

第三,在JSTL代码下编写的web程序易于后期维护;

四、JavaBean

1.JavaBean的编码规范

首先:

  • 必须要具有一个公共的(public)
  • 无参的构造方法(可以是编译器自动产生的缺省构造方法)

然后:

提供公共的(public)setter方法和getter方法------这里是为了能够使得外部的程序获取或者设置JavaBean的属性

2.Spring容器支持多种形式的Bean的三种装配方式

(1)基于XML的显式装配:

设值注入与构造注入


(2)基于注解(Annotation)的装配:

使用注解来标识Bean,包括@Component、@Service、@Repository、@Controller等,同时使用@Autowired、@Resource等注解来自动装配Bean。


(3)自动装配

将一个Bean自动的注入到到其他Bean的Property中。 Spring的<bean>中包含一个autowire属性,通过设置autowire的属性值来自动装配Bean。

3.Spring实例化Bean有三种方式

|----------------|------------------------------------------------------------------------------------------------------------------------|
| 构造器实例化 | Spring容器通过建立的Bean类中的默认构造器来实例化Bean |
| 静态工厂方式实例化 | Spring容器通过建立的Bean类中的默认构造器来实例化Bean |
| 实例化工厂方式实例化 | 直接创建Bean实例,在配置文件里面利用factory-bean属性配置实例工厂,通过factory-method属性来确定使用哪个方法,也是自行通过创建Bean类和工厂类,但这里和上面的不同的是,是通过非静态方法去获取Bean类的实例 |

以上三个方法在创建并实例好后,都需要创建Spring配置文件,(配置Bean类/工厂类),最后进行测试

相关推荐
胡西风_foxww10 分钟前
【ES6复习笔记】数值扩展(16)
前端·笔记·es6·扩展·数值
mosen86812 分钟前
uniapp中uni.scss如何引入页面内或生效
前端·uni-app·scss
白云~️12 分钟前
uniappX 移动端单行/多行文字隐藏显示省略号
开发语言·前端·javascript
沙尘暴炒饭14 分钟前
uniapp 前端解决精度丢失的问题 (后端返回分布式id)
前端·uni-app
昙鱼29 分钟前
springboot创建web项目
java·前端·spring boot·后端·spring·maven
天天进步201534 分钟前
Vue项目重构实践:如何构建可维护的企业级应用
前端·vue.js·重构
小华同学ai37 分钟前
vue-office:Star 4.2k,款支持多种Office文件预览的Vue组件库,一站式Office文件预览方案,真心不错
前端·javascript·vue.js·开源·github·office
APP 肖提莫39 分钟前
MyBatis-Plus分页拦截器,源码的重构(重构total总数的计算逻辑)
java·前端·算法
问道飞鱼1 小时前
【前端知识】强大的js动画组件anime.js
开发语言·前端·javascript·anime.js
k09331 小时前
vue中proxy代理配置(测试一)
前端·javascript·vue.js