Java基础学习之服务器初体验

Javaweb开发

 1  Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)

2、服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。

用户(浏览器)访问服务端的什么东西?

静态web资源 : HTML CSS js

  用户在访问静态资源的时候,这些资源不会变

动态web资源: jsp Servlet

  用户在访问动态资源的时候,访问内容是由代码生成的 

用法如何访问服务端?

用户通过网址来请求服务器端

  请求就是服务器端上面的静态资源和动态资源

  请求完成之后会给浏览器一个响应结果




服务器:

搭建JavaWeb应用开发环境——Tomcat服务器:

1.Tomcat 服务器 Sun公司出品 开源免费 轻量级

我们写的Java代码 和 前端HTML 页面 全部是放在服务器上运行;(服务器开发是开发放到服务器上的代码而不是开发一个服务器)

Tomcat服务器下文件夹

bin 存放编译指令的(例如开启关闭服务)

conf 存放Tomcat自己的配置文件

lib 存放Tomcat依赖的架包

logs 存放是用户访问服务器的日志(查看错误)

temp 存放临时文件

webAPPs 默认存放应用程序的文件夹(你的工程)

work 存放Tomcat 自己的工作文件

wtpwebapps 与eclipse 关联后 工程存放的文件夹

2.命令行打开服务器:

1.前往Tomcat 的bin文件夹下
2.开启文件管理权限
  获取文件夹权限(读写)
      sudo chmod 755 *.sh    
3.开启服务(window 下 执行的是 .bat 后缀的指令_) 注意不要重复开启服务,否则会出现端口被占用
  执行打开服务器
     sudo sh ./startup.sh
 ----------- 访问服务器上资源
  访问的网址 
  URL : 统一资源定位符
   http://localhost:8080/test/Helloorld.html
  URI :  从服务器网址往后: 统一资源标识符
  /test/Helloorld.html
   http://IP地址:端口号/项目名称/访问资源
   通过这个网址查看Tomcat是否启动
   http://localhost:8080/test/HelloWorld.html
4.关闭服务
  执行关闭服务器
      sudo sh ./shutdown.sh

3.eclipse 联系服务器

工程被编译到服务器 实际上是把工程目录下的webContent 文件夹下内容编译进去

  webContent 本身不出现

  META-INF 扩展应用程序文件夹(暂时没有用)

  WEB-INF 存放着工程的所有资源

     lib 存放工程使用的jar包

       (不用添加路径 会自动编译到服务器时)

       web.XML 工程的配置文件

       classes : 工程编译到服务器上出现的,存放的是你工程中类的.class 文件

       

       注意: WEB-INF 文件夹下存放的资源不能通过网址去直接访问.


Servlet初识

简单介绍

Servlet(小服务程序) 是个Java接口
访问服务器实际上是访问的是Servlet (容器 : 有访问的动态资源)
javax.servlet.Servlet; 注意如果报错或提示不出来
修改或添加Tomcat到你的工程中 libraries
servlet 的生命周期方法:

Servlet 只在你第一次访问时创建一次当你再次访问该servlet时不会创建新的Servlet

只会重复调用服务方法 service方法;

--用户发出一个请求系统如何能创建一个对应的Servlet?

1.通过用户请求的网址 系统可以获取到项目的名称 /sh-web-01
2.找到对应的项目后 从项目中找到该项目的web.xml文件
3.从XML文件中读取到访问servelt的路径(/demo01)
4.通过servlet 路径找到用户要访问哪一个servlet 的名字(demo01)
5.通过servlet 的名字就能找到要创建的Servlet 属于哪个来
6.系统通过反射创建该类的对象 然后走声明周期的四个方法  实例化-->初始化-->service服务-->销毁

如何创建一个Servlet ?

方式一: 直接实现 Servlet 接口

public class Demo01 implements Servlet {
	
	//实例化方法(创造对象的无参构造方法)
	public Demo01() {
		System.out.println("实例化对象的无参构造方法");
	}
	public void init(ServletConfig config) throws ServletException {
	 //初始化方法: 初始化Servlet 的配置信息
		System.out.println("初始化init方法 被调用");
	}
     //服务方法;  接收请求 返回响应(处理用户请求 处理完成后 响应给用户)
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
           System.out.println("Service方法被调用了");
		
	}
	//获取servlet 配置信息的用法
	public ServletConfig getServletConfig() {
		
		return null;
	}
	//	获取servlet 的版本 作者信息
	public String getServletInfo() {
		
		return null;
	}
	//Servlet 销毁方法
	//服务器关闭
	//该应用程序被移除也会调用
	public void destroy() {
	System.out.println("destory销毁方法 被调用");
		
	}

}

方式二 : 继承GenericServlet类 

利用缺省适配器方式:帮忙简化代码 生命周期方法可不写?

public class Demo02 extends GenericServlet {

@Override

public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

System.out.println("demo02..Service");

/*适配器模式创建:使用哪个方法就重写哪个方法 用不上的方法可以不重写

     使用extends关键字 继承 GenericServlet类,打开GenericServlet类,看里面的介绍

     发现GenericServlet类实现了Servlet类,代码为:

     public abstract class GenericServlet 

     implements Servlet, ServletConfig, java.io.Serializable{}

     可见Servlet类是基础类,GenericServlet通过实现Servlet类,再让我们继承它这个类

     可以方便我们写代码*/

}

}

方式三 : 直接继承HttpServlet 类

利用模板设计模式

public class Demo03 extends HttpServlet {
	//重写doGet 和 doPost 方法
	//注意重写完不要调用父类的doGet方法 否则一样会发送错误
	//注意从浏览器发送的请求都是get请求
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doGet******哈哈哈哈");
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doPOST********嘻嘻嘻嘻");
		//两种请求共用一个处理方法
		doGet(req, resp);
	
	}

}

配置web.XML文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- xml文件的版本号 和编码格式 -->
<!-- 表示该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_2_5.xsd" id="WebApp_ID" version="2.5">
	<!-- 工程名称 -->
  <display-name>sh-web-01</display-name>
  <!-- 创建一个Servlet  配置servlet 访问地址-->
<servlet>
 <!-- 给servlet 起个对象名 -->
 <servlet-name>demo01</servlet-name>
 <!-- 设置servlet 使用哪个类创建对象 -->
 <!--注意填全类名  -->
 <servlet-class>com.lanou3g.Demo01</servlet-class>
 
 <!-- 可以配置Servlet创建的优先级  数越小优先级越高-->
 <!-- 加上这个设置可以让在服务器启动时就会创建该Servlet -->
 <load-on-startup>5</load-on-startup>
 
</servlet>
 <!-- 给servlet 配置一个访问地址 -->
 <servlet-mapping>
 <!-- 表示要给哪一个servlet 对象配置访问地址 -->
 	<servlet-name>demo01</servlet-name>
 	<!-- 设置访问地址
 	    http://localhost:8080/sh-web-01/demo01
 	    /demo01 这个斜杠 表示的是项目名后的斜杠
 	 -->
 	<url-pattern>/demo01</url-pattern>
 </servlet-mapping>
 
<servlet>
 	<servlet-name>demo02</servlet-name>
	 <servlet-class>com.lanou3g.Demo02</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>demo02</servlet-name>
	<url-pattern>/demo02</url-pattern>
</servlet-mapping>

<servlet>
	<servlet-name>demo03</servlet-name>
	<servlet-class>com.lanou3g.Demo03</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>demo03</servlet-name>
	<url-pattern>/demo03</url-pattern>
</servlet-mapping>

 <servlet>
 	<servlet-name>demo04</servlet-name>
 	<servlet-class>com.lanou3g.Demo04</servlet-class>
 </servlet>
  <servlet-mapping>
  	<servlet-name>demo04</servlet-name>
  	  <!--利用通配符配置路基 -->
  	  <!-- 
  	   1. * .后缀名  *.action
  	   2./demo04 配置的是绝对路径
  	   3./*
  	   4./  默认配置方法(系统用的) 
  	   凡是通过服务器访问的资源都是Servlet 
  	   优先级 绝对路径> / > 带后缀的
  	   -->
  	<url-pattern>/demo04</url-pattern>
  </servlet-mapping>
<!-- 一个Servlet 配置多个访问路径 -->
<servlet-mapping>
	<servlet-name>demo04</servlet-name>
	<url-pattern>/demo999</url-pattern>
</servlet-mapping>
  <!-- 设置欢迎页面 直接访问工程路径 出现的页面 -->
  <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>
</web-app>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值