JavaEE的入门

用户是如何访问网站的?

1.通过一个网址(URL)访问网站(发出一个请求)
2.实际上访问网站就是访问该网站的服务器
3.通过代码(jdbc)去访问数据库,进行增删改查
4.将查询的结果返回给服务器你写的那堆代码中
5.最后服务器将查询的结果响应回浏览器(用户)
注意:访问服务器上的是代码(静态资源和动态资源)

  • 静态资源 HTML div+CSS(不管谁访问,内容不会改变)
  • 动态资源 jsp servlet(根据不同的用户,返回不同信息)
服务器基础了解

TomCat服务器(黄猫):开源的,免费的轻量级服务器,属于sun公司
TomCat目录中各个文件夹的作用:
bin : TomCat服务器操作指令
cndf : 服务器的配置文件 web.xml
lib : 服务器自己使用的jar包,内置dbcp数据库连接池
webapps : 存放你的工程(将网站运行代码放上去)
temp : 服务器运行时产生临时文件
logs : 存放服务器的日志信息(开启关闭服务器时间 以及运行时产生错误)
work : 服务器自己的工作文件夹

利用Tomcat操作指令启动和关闭服务器

1.打开cmd(控制台)
2.切换盘符,输入 d:
3.cd(去往目录) 去往Tomcat下的bin文件夹
4.执行服务器开启服务的指令startup.bat
5.设置环境变量(提前设置好,步骤懒得改了)
新建变量名JAVA_HOME 变量值为jdk的bin文件夹路径
新建变量名JRE_HOME 变量值为jdk的jre文件夹的路径
6.访问Tomcat服务器的默认网页
格式 : http://ip地址:服务器的端口号/工程的名字/访问的资源
注意 : TomCat默认端口号 8080
7.关闭Tomcat服务,使用shutdown.bat

服务器上的工程目录

项目运行后,会将工程中的WebContent文件夹编译到服务器上(但是WebContent不会出现)
1.网页资源HTML页面(静态资源)
2.META-INF : 配置工程的扩展应用(暂时没用)
3.WEB-INF(重点) : 工程的所有资源
classes : 项目代码的.class文件
lib : 工程中使用.jar包(web工程不用添加jar的路径)
web.xml : 工程配置文件(配置Servlet)

JavaEE概念
  • JavaEE是Java为服务器端提供的一套规范(接口)
  • 规范中有jsp servlet , 是javax.servlet包下的
  • 注意:需要给工程添加Tomcat包(添加完成才能使用这套接口)
servlet作用

定义:servlet(小服务程序) 就是一个Java中接口
1.可以接收用户(浏览器)发过来的请求
2.处理请求
3.可以将处理完的请求,再响应回浏览器

创建 Servlet 有三种方式

首先需要去工程的web.xml文件中,配置该servlet的访问路径

<?xml version="1.0" encoding="UTF-8"?>
<!-- Ctrl+shift+/ 注释 -->
<!-- xml文件的版本号,编码格式 -->
<!-- xml文件头,对文件中可使用的标签进行约束 -->
<!-- content model 规定了该xml文件可以使用什么标签 -->
<!-- 注意:建议你在书写这些标签时的顺序 -->
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <!-- 工程名 -->
  <display-name>sh-web-01</display-name>
  <!-- 设置默认的欢迎页面 -->
  <welcome-file-list>
    <welcome-file>HelloWorld.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 配置servlet类和名字 -->
  <servlet>
  <!-- 给该servlet设置一个名字 -->
  <servlet-name>demo01</servlet-name>
  <!-- 设置servlet是哪个类的(使用全类名) -->
  <!-- 系统通过反射可以将该类创建出来 -->
  <servlet-class>com.lanou3g.Demo01</servlet-class>
  </servlet>
  <!-- 配置servlet的访问路径 -->
  <servlet-mapping>
  <!-- 设置给哪一个servlet配置路径 -->
  <!-- 注意:要与配置时 名字相同 -->
   <servlet-name>demo01</servlet-name>
   <!-- 配置路径(见名知意) -->
   <!-- /aaa 这个斜杠表示是 下面工程名后面的斜杠-->
   <!-- http://localhost:8080/sh-web-01/ -->
   <url-pattern>/demo01</url-pattern>
  </servlet-mapping>

注意:
1.当用户第一次请求时,系统会创建出servlet对象,并且只创建一次
2.当用户再次请求同一个servlet时,不会再创建新的servlet对象,而是只会调用服务方法(service方法)
3.当停止服务器,调用销毁方法
4.不管多少用户(浏览器)访问 都只会创建一个servlet

方法一

  • 实现Servlet接口
  • 实现接口中的生命周期方法
  • 构造方法 init service destroy(4个)
public class Demo01 implements Servlet{
	// 构造方法
	public  Demo01() {
		System.out.println("Demo01 的构造方法");
	}
	
	// 初始化servlet的配置信息
	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("init 初始化方法");
	}
	
	// servlet的服务方法(处理请求方法)
	@Override
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("service 服务方法");
	}
	
	// servlet的销毁方法
	// 1.服务器停止时
	// 2.当应用程序从Tomcat中被移除时调用
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("destory 销毁方法");
	}
	
	// 获取当前servlet的配置信息
	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}
	
	// 获取servlet的版本 作者信息
	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}
}

方法二

  • 继承 GenericServlet
  • 只用实现服务方法
  • 该类使用缺省适配器模式来写的
  • 好处:节省代码
public class Demo02 extends GenericServlet{
	@Override
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Demo2 服务方法");
	}
}

方法三

  • 继承 HttPServlet
  • 利用模板设计模式
public class Demo03 extends HttpServlet{
	// 重写doget
	// 注意:重写方法后,不要调用父类中方法
	//      父类中的处理就是给浏览器发送错误信息
	// 可以在dopost方法中,调用doget方法
	// 好处:不论接收请求时get还是post,写一次处理的代码就行
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doget");
	}
	// 重写dopost
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}
内部访问流程

1.服务器会接收到用户请求过来网址
2.通过网址中的工程名/sh-web-01,在webapps文件中,找到对应的工程
3.在工程中找到web.xml文件,进行读取
4.通过用户的访问网址中 /demo01(访问的资源路径),找到该路径所对应的 servlet-name
5.通过servlet-name 找到对应servlet-class
6.通过servlet-class 系统反射出该类的对象
7.调用servlet的生命周期方法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值