Servlet(上)——软件架构、Tomcat、servlet、web项目 && 练习

软件架构(C/S,B/S)

什么是软件架构?
分为C/S(客户机/服务器)和B/S(浏览器/服务器)架构。是否有客户端,有就是C/S否则就是B/S。

【待补充】

web简介

web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本(html)和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
【待补充】

常用服务器:Tomcat、JBoss、weblogic

Tomcat服务器

Tomcat服务器简介

Tomcat由Apache、Sun和其他公司及个人共同开发。由于有Sun公司的加入,Tomcat对java有很好的支持
【待补充】

Tomcat使用步骤

1、下载(https://tomcat.apache.org/)
在这里插入图片描述
2、如果下载的解压版,解压即可(记住存放位置)
在这里插入图片描述
3、Tomcat的启动、测试、关闭

1)启动
在bin文件夹中找到startup.bat双击

如果双击之后,闪过黑框?
修改startup.bat系统文件(在该文件的最上方加:SET JAVA_HOME=……和SET TOMCAT_HOME=……)
在这里插入图片描述

2)测试
打开浏览器——>http://localhost:8080/或者http://ip地址:8080

如何修改默认端口号?
找到conf文件夹中的server.xml,修改其中的port属性
在这里插入图片描述
3)关闭
关闭黑框即可

Tomcat与Eclipse集成并搭建web项目

1、集成
Window——Show View——Other…——Server——选择Servers——点击open——找到Servers点击一行蓝色的字——选中Apache——找到对应的Tomcat版本——next——选择Browse…——找到Tomcat存放路径——over

2、配置Tomcat

双击Tomcat
在这里插入图片描述
目的:使用自己的路径存放web项目,可以在磁盘中对应的Tomcat文件下的webapps下查看发布的项目

3、启动服务器

选中Tomcat——鼠标右键——双击start

4、创建web项目

第一步
在这里插入图片描述
第二步
在这里插入图片描述
第三步
在这里插入图片描述
第四步
在这里插入图片描述
第五步

PS:web.xml是tomcat服务器读取的
在这里插入图片描述
效果
在这里插入图片描述

5、使用Tomcat发布web项目
在这里插入图片描述
在这里插入图片描述

Servlet

简述Servlet

在这里插入图片描述
本质:特殊的java代码
作用:与前端交互
在这里插入图片描述
【待补充】

认识Servlet 0

实践出真知,下面测试一个简单的登录功能(将前端输入的文本信息打印在控制台)

第一步:创建login.html

action中一定要写xml配置文件设置的路径

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="www" method="get">
		账户:<input type="text" name="username"/><br/>
		密码:<input type="password" name="password"/><br/>
		<input type="submit" value="login"/>
	</form>

</body>
</html>

第二步:创建LoginServlet.java文件(实现servlet接口的类)

package com.servlet.day10;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class LoginServlet implements Servlet{

	@Override
	public void destroy() {
	}

	@Override
	public ServletConfig getServletConfig() {
		return null;
	}

	@Override
	public String getServletInfo() {
		return null;
	}

	@Override
	public void init(ServletConfig config) throws ServletException {
	}

	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		String name = req.getParameter("username");
		String pwd = req.getParameter("password");
		System.out.println(name + "\t" + pwd);
	
	}

}

第三步:配置核心配置文件web.xml

一定要写在web-app标签里面,别写到外面了

 <!--配置LoginServlet,让前端代码与servlet产生联系  -->
  <servlet>
 	 <!--servlet的名字,随便取  -->
  	<servlet-name>LoginServlet</servlet-name>
  	<!--实现servlet接口的类的全类名(找到实现类)  -->
  	<servlet-class>com.servlet.day10.LoginServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<!--与上面取的名字对应  -->
  	<servlet-name>LoginServlet</servlet-name>
  	<!--前端数据提交的路径(/表示跟目录,一定要加)  -->
  	<url-pattern>/www</url-pattern>
  </servlet-mapping>

第四步:结果

1)网页
在这里插入图片描述
2)控制台
在这里插入图片描述

最后解释:执行顺序
(盗图,有些命名不一样仅此而已)
在这里插入图片描述

Servlet体系机构与Tomcat的关系

层次:
一个Tomcat可以有多个web项目,每个web项目可以有多个servlet。

为什么没有实例化LoginServlet实现类并且没有调用service方法,就自动调用了?
Tomcat初始化Servlet时,自动读取web.xml配置文件,根据配置文件生成ServletConfig和ServletContext对象。同时创建ServletRequest和ServletResponse对象交给Servlet,则执行实现类中的service方法。

【待补充】

Get与Post请求

只有form表单中的method属性设置为post时,才会调用doPost(),其余都调用doGet()。而doGet与doPost是service拆分而来,不能混合使用

【待补充】

Servlet生命周期 0

一、初始化
init(),默认情况当第一次访问Servlet时,Servlet容器(Tomcat)会加载Servlet,加载完成时,Servlet容器(Tomcat)会创建一个Servlet实例并调用init()方法并进行初始化。 init()方法只会执行一次,也说明一个Servlet只有一个实例,即单列模式。

如果访问Servlet时才初始化,将会影响第一个访问的用户,如何修改?
修改初始化的时间。使用<load-on-startup>,该值大于等于0时,该servlet就会在服务器启动时初始化。影响:服务器启动时会花费更多时间

二、提供服务
service(),当Servlet每被访问一次,service()就会自动调用一次,该方法可执行多次。

三、销毁
destroy(),当关闭服务或资源重新加载时,destroy()会被执行,这就标识着整个Servlet的生命周期到此结束。该方法只会被执行一次。

代码展示

public class DemoServlet extends HttpServlet {
	@Override
	public void init() throws ServletException {
		System.out.println("初始化");
	}
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("提供服务");
	}
	private void destory() {
		System.out.println("销毁");
	}
}

练习题——学生管理系统1(搭建web项目实现登录注册功能)

👉点击👈https://blog.csdn.net/Today_He/article/details/108982071

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈年_H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值