初见servlet

JavaWeb 简介

** C/S 体系结构**
  C/S 是 Client/Server 的缩写,即 客户端/ 服务器结构。在这种结构中,服务器通常采用高 性能的 PC 机或工作站,并采用大型数据库系统(如 Oracle 或SQL Server),客户端则需要安装专用的客户端软件。这种结构可以充分利用两端硬件环境的优势,将任务合理分配到客户端和服务器,从而降低了系统的通信开销。
B/S 体系结构
  B/S 是 Browser/Server 的缩写,即 浏览器/ 服务器结构。在这种结构中,客户端不需要开发任何用户界面,而统一采用如 IE、Firefox、Chrome 等浏览器,通过 Web 浏览器向 Web 服务器发送请求,由 Web 服务器进行处理,并将处
理结果逐级传回客户端。这种结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,从而节约了开发成本,是一种全新的软件体系结构。这种体系结构已经成为当今应用软件的首选体系结构。

Web 应用程序

Web 应用程序大体上可以分为两种,即静态网站和动态网站。静态页面的浏览,即静态网站。动态网站需要根据用户的请求动态生成页面信息。
Web 应用技术:
客户端应用的技术:html、css、js。
服务器端应用技术:jsp、servlet。

Tomcat

简介
  Tomcat 是一个符合 JavaEE WEB 标准的最小的 WEB 容器。Tomcat 是由 Apache 提供的(www.apache.org)提供的可以用安装版和解压版,安装版可以在服务中出现一个 Tomcat 的服务,免安装没有,开发中使用免安装版。 Tomcat 简单的说就是一个运行 Java 的网络服务器, 底层是 Socket的一个程序,它也是 JSP 和 Servlet 的一个容器。
  Tomcat 技术先进、性能稳定,而且免费,属于轻量级应用服务器。
安装
  运行 Tomcat 需要 JDK 的支持【Tomcat 会通过 JAVA_HOME 找到所需要的JDK】。 安装就是解压缩过程。启动 Tomcat,能访问则算安装好了。
tomcat结构目录
1、bin:启动和关闭 tomcat 的 bat 文件
2、conf:配置文件 server.xml 该文件用于配置 server 相关的信息,比如tomcat 启动的端口号,配置主机(Host) web.xml 文件配置与 web 应用(web 应用相当于一个 web 站点)tomcat-user.xml 配置用户名密码和相关权限.
3、lib:该目录放置运行 tomcat 运行需要的 jar 包
4、logs:存放日志,当我们需要查看日志的时候,可以查询信息
5、webapps:放置我们的 web 应用
6、work 工作目录:该目录用于存放 jsp 被访问后生成对应的 server 文件和.class 文件
Eclipse 关联 Tomcat
Window→preferences→Server→Runtime Environment→add→apache-tomcat-8.0.23

Http协议

超文本传输协议,应用层协议。
协议格式
http : //ip或域名:端口/项目路径/资源路径?参数名=参数值
协议特点
  1、支持客户端/服务端模式
  2、简单快速
  3、灵活
  4、http/1.1后支持持续连接
  5、无状态
请求协议
  请求行
    请求方式(GET/POST) 请求路径 协议版本
  请求头
    每一个报头域都是由名字+“:”+空格+值组成,消息报头域的名字是大小写无关的。
  GEt请求没有请求正文,POST请求有
响应协议
  响应行/状态行
    协议版本 响应状态码 状态码说明
  响应头/消息报头
    每一个报头域都是由名字+“:”+空格+值组成,消息报头域的名字是大小写无关的。
  响应正文
    浏览器中能看到内容
消息头
  请求头
    referer
      该请求头指明请求从哪里来(上一个页面是谁)
      如果是直接从地址栏输入的地址,是没有referer请求头
      常用场景:百度竞价、统计工作和防盗链等
  响应头
    Refresh:
      自动跳转(单位是秒),可以在页面通过 meta 标签实现,也可在后台实现。
      <meta http-equiv=”refresh” content=”3;url=http://www.baidu.com”>

第一个servlet

实现步骤:
1、新建项目
  1)、右侧空白,右键选择"New"
  2)、选择"Project",搜索"Web",选择"Dynamic Web Project"
  3)、设置项目名称及版本为2.5
  4)、选择"Next",再"Next",设置站点名Context root
  5)、选择"Finished"
2、新建普通Java类
3、实现Servlet规范,继承HttpServlet类
4、重写service()方法

public class Servlet01 extends HttpServlet {

	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		System.out.println("Hello Servlet!");
		
		// 能够输出流写出内容到浏览器中
		arg1.getWriter().write("Hello Servlet!");
		
	}
}

5、配置web.xml (项目的WEB-INF目录下)

 <servlet>
	<servlet-name>servlet01</servlet-name>
	<servlet-class>com.servlet.Servlet01</servlet-class>
 </servlet>
 <servlet-mapping>
	<servlet-name>servlet01</servlet-name>
	<url-pattern>/s1</url-pattern>
 </servlet-mapping>

注意
  1、< servlet>中的< servlet-name>标签的值要唯一
  2、< servlet-mapping>中的< url-pattern>的值要唯一
  3、< servlet>中的< servlet-name>与< servlet-mapping>的< servlet-name>标签保持一致
  4、< url-pattern>的值前面要加"/"
  5、修改了配置文件必须要重启服务器才会生效
  6、一个Servlet可以配置多个访问路径
     通配符"*"
    只能放在最前面或最后面
    不能放中间且不能单独存在(以/分割的,不能和单词组成整体)。
     越精确越优先。
6、发布项目并启动服务
7、访问并查看结果
工作原理
客户端发出请求 根据 web.xml 文件的配置,找到对应的 读取中的值 找到对应的 找到该 class 并加载执行该 class,返回结果 由 Web 服务器将结果响应给客户端。
Servlet 的生命周期
  Servlet 没有 main()方法,不能独立运行,它的运行完全由 Servlet 引擎来控制和调度。 所谓生命周期,指的是 servlet 容器何时创建 servlet 实例、何时调用其方法进行请求的处理、 何时并销毁其实例的整个过程。(此处讨论默认的生命周期)
1、实例和初始化时机
  当请求到达容器时,容器查找该 servlet 对象是否存在,如果不存在,则会创建实例并 进行初始化。
  init 方法,初始化方法,服务器执行的方法,只会执行一次,Servlet第一次被访问时执行。
2、就绪/调用/服务阶段
  有请求到达容器,容器调用 servlet 对象的 service()方法,处理请求的方法在整个声明周 期中可以被多次调用;HttpServlet 的 service()方法,会依据请求方式来调用 doGet()或者 doPost()方法。但是, 这两个 do 方法默认情况下,会抛出异常,需要子类去 override。
  service 方法,服务方法,可执行多次,每次访问servlet时都会调用。
3、销毁时机
  当容器关闭时(应用程序停止时),会将程序中的 Servlet 实例进行销毁。
  destroy 方法,Servlet 实例销毁时执行,只会执行一次。

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的大学生第二课堂系统,旨在为大学生提供一个便捷、高效的学习和实践平台。项目包含了完整的数据库设计、后端Java代码实现以及前端Vue.js页面展示,适合计算机相关专业的毕设学生和需要进行项目实战练习的Java学习者。 在功能方面,系统主要实现了以下几个模块:用户管理、课程管理、活动管理、成绩管理和通知公告。用户管理模块支持学生和教师的注册、登录及权限管理;课程管理模块允许教师上传课程资料、设置课程时间,并由学生进行选课;活动管理模块提供了活动发布、报名和签到功能,鼓励学生参与课外实践活动;成绩管理模块则用于记录和查询学生的课程成绩和活动参与情况;通知公告模块则实时发布学校或班级的最新通知和公告。 技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,确保了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提升了用户体验和开发效率。 该项目不仅提供了完整的源代码和相关文档,还包括了详细的数据库设计文档和项目部署指南,为学习和实践提供了便利。对于基础较好的学习者,可以根据自己的需求在此基础上进行功能扩展和优化,进一步提升自己的技术水平和项目实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值