JavaWeb

Web的类型,即网页的类型

静态Web

  • 提供行所有人看的数据,并且始终不发生变化
  • 无法和数据库交互(数据无法持久化,用户无法交互);
  • html;css

动态Web

  • 提供行所有人看的数据,并且始终发生变化
  • 在Java中,动态 Web资源开发的技术统称为JavaWeb;
  • Servlet /JSP、ASP、PHP

Servlet

定义

Servlet是一种用于Java编写的服务器端程序,具有独立与平台和协议的特性,交互式浏览和生成数据,生成动态Web内容。Web应用程席编写完毕后,若想提供给外界访问,需要一个服务器(Tomcat)统一管理。

原理

  • 客户端发送请求:当客户端(通常是Web浏览器)发送一个HTTP请求到服务器时,请求的URL会指向一个特定的Servlet。

  • Web容器接收请求:Web容器(例如Tomcat)接收到请求,根据请求的URL确定要调用的Servlet。

  • Servlet生命周期:如果Servlet尚未初始化,Web容器会加载Servlet类并创建一个Servlet实例。然后,Web容器调用Servlet的init()方法进行初始化。init()方法只会在Servlet的生命周期中被调用一次。

  • 处理请求:一旦Servlet初始化完成,Web容器会在单独的线程中调用Servlet的service()方法,并将请求对象(HttpServletRequest)和响应对象(HttpServletResponse)作为参数传递给它。

  • Servlet处理请求:在service()方法中,Servlet可以根据请求的类型(GET、POST等)执行相应的逻辑。它可以读取请求参数、访问数据库、调用其他Java类等,以生成所需的动态内容。

  • 生成响应:Servlet可以使用响应对象(HttpServletResponse)来设置响应的类型、编码、头部信息等。它可以生成HTML、XML、JSON或其他类型的响应内容,并将其写入响应输出流。

  • 发送响应:一旦Servlet生成了响应内容,Web容器将把响应发送回客户端。客户端接收到响应后,可以显示响应的内容或执行其他相应的操作。

  • Servlet销毁:当Web容器关闭或重新加载Web应用程序时,Servlet的destroy()方法会被调用。在destroy()方法中,Servlet可以执行清理操作,如释放资源、关闭数据库连接等。destroy()方法只会在Servlet的生命周期结束时被调用一次。

实现数据共享的方式 

  • ServletContext:ServletContext是在整个Web应用程序范围内共享数据的最广泛的方式。它可以存储全局信息,供所有的Servlet组件访问。通过ServletContext对象,Servlet可以获取和设置共享的属性。例如,可以使用getServletContext()方法在Servlet中获取ServletContext对象,并使用setAttribute()getAttribute()方法来设置和获取属性。

  • HttpSession:HttpSession提供了一种在用户会话范围内共享数据的机制。每个用户会话都有一个唯一的HttpSession对象,可以存储和检索与特定用户相关的数据。通过request.getSession()方法可以获取当前请求的HttpSession对象。Servlet可以使用setAttribute()getAttribute()方法在会话中存储和获取属性。

  • 请求属性(Request Attributes):Servlet可以使用HttpServletRequest对象的setAttribute()getAttribute()方法在请求范围内共享数据。请求属性在同一个请求处理周期内有效,并且仅对该请求的Servlet组件可见。

  • 请求参数(Request Parameters):Servlet可以通过HttpServletRequest对象的getParameter()方法获取请求参数。请求参数是客户端通过URL查询字符串或表单提交的数据,可以在不同的Servlet组件之间进行共享。

  • 上下文参数(Context Parameters):上下文参数是在web.xml文件中配置的全局参数,可以在整个Web应用程序范围内进行共享。Servlet可以使用ServletContext对象的getInitParameter()方法来获取上下文参数的值。

  • Cookie类:把用户的数据写给用户的浏览器,浏览器保存一个或多个记录,信息保存在请求中。

 MVC

Model View Controller (模型视图控制器)。一般流程:

登录->接收用户登陆请求->处理请求(获取前端页面传来的参数)->交给业务层处理登录业务(如判断登录密码是否正确)->Dao查询数据库

Model

  • 业务处理:业务逻辑(Service)
  • 数据持久层:CRUD(Dao)

View

  • 展示数据
  • 提供链接发起的Servlet请求

 Controller

  • 接受用户请求
  • 交给业务成处理对应代码
  • 控制视图跳转
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值