• 在javaEE下学习web(在eclipse中开发动态的WEB工程,servlet的环境搭建,及servlet的一些方法)


    一个简便的方法实现javaee版的eclipse开发动态的WEB工程(javaWEB项目)
    1.把开发选项切换到javaEE
    2. 可以在window-》shou view 中找到package explorer并把其拖到开发区的左边

    (Tomcat环境搭建在这不多说)
    3.在servers面板中新建Tomcat服务器,一定要关联到Tomcat安装的根目录
    4.新建一个Dynamic Web Project。其中Target Runtime需选择Tomcat6.0(3)
    5.开发java WEB应用
    6.可以通过右击项目然后选run on server来运行WEB项目

    -------------------------------------------------------------------------------------------------------------------------

    建立动态的web项目的具体步骤:

    打开javaEE版本的eclipse,切换到javaEE,File->new->Dynamic Web Project->填写动态web工程名->Target runtime选择Tomcat6.0(3)->finish;

    在src目录下可以建立java类,及包,下面就是src目录下面建立的类:

    package com.lanqiao.javatest;

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Enumeration;

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

    public class HServlet implements Servlet{
    /*
    * 建立第一个servlet:
    * servlet是一个接口,是运行在服务器端的java骨架;
    * 首先创建一个Servlet类的构造器,然后在WEB-INF下的we.xml配置和映射文件
    *
    * Servlet容器:运行Servlet,JSP,Filter,等的软件环境
    * 可以来创建Servlet,并调用Servlet的相关周期方法;
    *
    * Servlet生命周期的方法,生命周期相关的方法:一下方法都是Servlet容器负责调用
    * 1.构造器:只被调用一次,只有第一次请求Servlet时,创建Servlet实例,调用构造器,这说明Servlet是单实例的!
    * 2.init的方法:只被调用一次,在创建好实例后立即被调用。用于初始化Servlet;
    * 3.servlet:被多次调用,每次请求都会调用Servlet方法,实际用于调用请求的;
    * 4.destroy方法:只被调用一次,在当前Servlet所在的WEB应用被卸载前调用,用于释放当前Servlet所占用的资源。
    *
    * load-on-startup(配置参数):可以指定Servlet被创建的时机;
    * 配置在Servlet节点中;
    * <servlet>
    <servlet-name>secondServlet</servlet-name>
    <servlet-class>com.lanqiao.javatest.SecondServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
    </servlet>
    * 其数值越小越被被早创建
    *
    * */
    @Override
    public void destroy() {
    System.out.println("destroy");

    }
    /*
    * ServletConfig:封装了Servlet的配置信息,并且可以获取ServletContext对象,其有四个方法;
    * 配饰Servlet初始化参数,必须在load-on-startup的前边配置
    * 1.获取初始化参数
    * getInitParameter(String name):获取指定参数名的初始化参数
    * 2.getInitParameterNames():获取参数名组成的Enumeration 对象。
    * 3.getServletName() :获取servlet(在web.xml中起的名字)名字的方法
    *
    * 4.getServletContext():获取servletContext;Context为上下文,获取servlet的上下文;
    * servletContext:可以认为是WEB应用的大管家,可以从中获取到当前WEB应用的各个方面的信息:
    * (1):获取当前WEB应用的初始化参数(被所有的servlet的使用的)
    * 先配置再获取(在web.xml中配置)
    * (2):获取当前WEB应用的某一文件的绝对路径
    * getRealPath(String Path)
    * (3):获取当前WEB应用的名称:getContextPath()
    * (4):获取当前WEB应用的某一文件对象的输入流
    * getResourceAsStream("jdbc.properties"):文件是在src目录下的文件
    * getResourceAsStream("/WEB-INF/classes/jdbc.properties"):第二种方法
    * */
    @Override
    public ServletConfig getServletConfig() {
    System.out.println("getservletconfit");
    return null;
    }

    @Override
    public String getServletInfo() {
    System.out.println("getservletinfo");
    return null;
    }

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
    System.out.println("init");
    String user=servletConfig.getInitParameter("user");
    System.out.println("user:"+user);

    Enumeration<String> names=servletConfig.getInitParameterNames();
    while(names.hasMoreElements()){
    String name=names.nextElement();
    String value=servletConfig.getInitParameter(name);
    System.out.println("name:"+name+" "+"value:"+value);
    }

    //获取servlet(在web.xml中起的名字)名字的方法
    String servletName=servletConfig.getServletName();
    System.out.println(servletName);

    //获取servletContext对象;
    ServletContext servletContext=servletConfig.getServletContext();
    String driver=servletContext.getInitParameter("driver");
    System.out.println("driver:"+driver);

    Enumeration<String> names2=servletContext.getInitParameterNames();
    while(names2.hasMoreElements()){
    String name=names2.nextElement();
    String value=servletContext.getInitParameter(name);
    System.out.println("name:"+name+" "+"value:"+value);
    }

    //获取当前WEB应用的某一文件的绝对路径(一定是根目录下的:即是WebContent下的)
    String realPath=servletContext.getRealPath("/javaee.test");
    System.out.println(realPath);

    //获取当前WEB应用的名称:getContextPath()
    String contextPath=servletContext.getContextPath();
    System.out.println(contextPath);

    //获取当前WEB应用的某一文件对象的输入流,其中文件在src目录下建立的
    try {
    ClassLoader classLoader=getClass().getClassLoader();
    InputStream is=classLoader.getResourceAsStream("jdbc.properties");
    System.out.println("1:"+is);

    } catch (Exception e) {
    e.printStackTrace();
    }
    //第二种方法:
    try {
    InputStream is2=servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
    System.out.println("2:"+is2);
    } catch (Exception e) {
    e.printStackTrace();
    }

    }

    @Override
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    System.out.println("servlce");

    }
    public HServlet(){
    System.out.println("helloworld");
    }
    }

    -------------------------------------------------------------------------------------------------------------

    在WebContent->WEB-INF->lib->web.xml(已经存在)建立配置文件,下面就是在web.xml中的一些配置

    <?xml version="1.0" encoding="UTF-8"?>
    <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">

    <!-- 配置当前WEB应用的初始化参数 (可以写好多个,是全局的)-->
    <context-param>
    <param-name>driver</param-name>
    <param-value>com.mysql.jdbc.Driver</param-value>
    </context-param>

    <context-param>
    <param-name>jdbcUrl</param-name>
    <param-value>jdbc:mysql:///test</param-value>
    </context-param>


    <!-- 配置和映射Servlet(一定要有的) -->
    <servlet>
    <servlet-name>HServletttt</servlet-name>
    <servlet-class>com.lanqiao.javatest.SecondServlet</servlet-class>
    <load-on-startup>5</load-on-startup>
    </servlet>
    <!-- 映射 -->
    <servlet-mapping>
    <servlet-name>HServletttt</servlet-name>
    <url-pattern>/hello</url-pattern>
    </servlet-mapping>


    <servlet>
    <servlet-name>seServlet</servlet-name>
    <servlet-class>com.lanqiao.javatest.HServlet</servlet-class>

    <!-- 配置Servlet的初始化参数 (局部的)-->
    <init-param>
    <!-- 分别是初始化参数名字,初始化参数值 -->
    <param-name>user</param-name>
    <param-value>root</param-value>
    </init-param>
    <init-param>
    <param-name>password</param-name>
    <param-value>123lxn</param-value>
    </init-param>
    <!-- 可以指定Servlet创建的时机 -->
    <load-on-startup>2</load-on-startup>

    </servlet>

    </web-app>

  • 相关阅读:
    iOS UILable 自定义高度 用masony适配
    iOS上架所需图片大小明细
    GCD倒计时
    iOS 小知识汇总
    七、Swift 枚举 Enumerations
    C语言深度剖析笔记
    六、闭包 Closures
    经济学常识
    Mac小技巧
    五、函数 Functions
  • 原文地址:https://www.cnblogs.com/lxnlxn/p/5808475.html
Copyright © 2020-2023  润新知