JavaWeb Servlet(1)

尚硅谷课程

Servlet容器:为JavaWeb应用提供运行时环境,负责管理Servlet和JSP的生命周期,以及管理他们的共享数据 如Tomcat

tomcat:需要配置JAVA_HOME指向jdk或者jre_home   ;

server.xml文件修改端口号

startup.bat和shoutdown.bat实际调用 catalina文件来操作 需要配置 catalina_home(bin文件夹之前的路径)   同一个dos窗口启动 能看到启动错误

tomcat 6的管理程序:需要添加管理远权限,配置conf目录下的tomcat-users.xml文件,添加manager角色,设置用户名和密码

<?xm version='1.0' encoding='utf-8'?>

<tomcat-users>

<role rolename="manager"/>

<user username="tomcat" password="" roles="manager"/>

</tomcat-users>

tomcat 7 本地环境添加下面的配置没效果,未找到原因

tomcat 7 之后的版本,配置时不止需要manager和admin,还需要manager-gui和admin-gui才能使用HTML的Tomcat Manager和Tomcat Host Manager。于是加上 :

<role rolename="manager"/>  

<role rolename="manager-gui"/>  

<role rolename="admin"/>  

<role rolename="admin-gui"/>  

<user username="Tomcat" password="Tomcat" roles="admin-gui,admin,manager-gui,manager"/>  

注意这些代码在标签<tomcat-users>和</tomcat-users>之间添加。

web程序的结构:web应用程序的目录放在webapps目录下,及根目录
-WEB-INF:文件名必须大写
--classes:编译好的类文件
--lib:jar包
--web.xml:web应用的配置和部署信息
-index.html
-文档、图片、JSP文件等
设置默认class输出位置
(省去复制项目的动作)配置任意目录下的web程序:conf\catalina\localhost目录根据应用名:test,创建test.xml(url访问时靠xml的文件名)
核心内容:<Context path="/test1" docBase="c:\\项目真实路径\\WebContent" reloadable="true"/>  (修改后,自动重复加载)

将java工程转成web工程:http://www.cnblogs.com/kaige123/p/5866446.html


javaEE版本的Eclipse创建动态WEB工程
1)选项切换的JavaEE
2)window->Show View找到Package Explorer 拖到左边开发区 :项目目录
3)在Servers面板中新建Tomcat服务器,管理到Tomcat的根目录
4)新建一个Dynamic Web Project 动态工程

定制new面板:window-Customize Perspective-Shortcuts
General:File Folder
jAVA:全选,除JUnit-JUnit Test Suite不要
SQL Development:SQL File
WEB:全选,除Static Web Project(静态web工程) Filter
XML:XML File


web.xml配置servlet参数

<!--配置和映射 Servlet-->
<servlet>
    <!-- Servlet 注册的名字 -->
    <servlet-name>Manager</servlet-name>
    <!-- Servlet 全类名 -->
    <servlet-class>org.apache.catalina.manager.ManagerServlet</servlet-class>

    <!-- 配置Servlet的初始化参数  必须在load-on-startup前面-->

    <init-param>

       <param-name>user</param-name>

       <param-value>root</param-value>

    </init-param>

    <!-- 制定Servlet 被创建的时机 -->
    <load-on-startup>1</load-on-startup>
</servlet>

 <servlet-mapping>
    <!-- 需要和某一个Servlet结点的 servlet-name 子节点的文本节点一致  -->
    <servlet-name>Manager</servlet-name>
        <!-- 映射具体的访问路径:、代表当前WEB应用的根目录 -->
      <url-pattern>/list</url-pattern>
  </servlet-mapping>
 
  Servlet容器:运行Servlet、JSP、Fileter等软件环境
  1).可以来创建Servlet,并调用Servlet的相关生命周期方法
  2.JSP,Filter,Listener,Tag...
  Servlet 生命周期的方法:一下方法都是由Servlet容器负责调用。
  1)构造器:只被调用一次,只有第一次请求Servlet时,创建Servlet的实例,调用构造器,说明Servlet的单实例的 (会有线程安全问题
  2)init:只被调用一次,在创建好实例后立即被调用,用于Servlet的初始化 (可以传参数)
  3)service:被多次调用,每次请求都会调用service方法,实际用于响应请求
  4)destroy:只被调用一次,在当前Servlet所在的WEB应用被卸载前调用,用于释放当前的Servlet所占用的资源
  5)load-on-startup 参数:key8i制定Servlet被创建爱你的时机,负数,第一次请求时被创建
  0或者正数,在当前WEB应用被Servlet容器加载时创建实例,数越小越早被创建
 
  Servlet 映射的细节
  同一个Servlet可以被映射到多个URL上,即<servlet-name>
  在Servlet映射到的URL中也可以使用*通配符,但只能有两种固定的格式:
  1)“*.扩展名”,另一种格式是以正斜杠(/)开头并且以“/*”结尾

 

ServletConfig:封装了Servlet的配置信息,并且可以获取ServletContext对象

getInitParameter("参数名");

getInitParameterNames();数组

getServletName(); 获取Servlet的配置名称

getServletContext(); 上下文信息

ServletContext:包含在ServletConfig对象中,能够获取到Web相关信息

常用方法:获取初始化参数

<context-param>

 <param-name>driver</param-name>

 <param-value>com.mysql.jdbc.Driver</param-value>

</context-param>

1》获取参数

getInitParameter("driver");

getInitParameterNames();

   <init-param>、<context-param>:区别局部,全局的区别

2》获取当前WEB引用的某一个文件在服务骑上的绝对路径,而不是部署前的路径:

String str  =servletContext.getRealPath("/note.txt");

3》获取当前WEB应用名称

servletContext.getContextPath();

4》获取当前WEB应用的某一个文件对应的输入流。

getResourceAsStream(String path);path的/为当前WEB应用的根目录。

举例:ClassLoader cl = getClass().getClassLoader();

InputStream is = cl.getResourceAsStream("jdbc.properties");

InputStream is = cl.getResourceAsStream("/WEB-INF/classes/jdbc.properties");

5》和attribute相关的方法 在Request 处进行对比解释


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值