在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+"\t"+"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+"\t"+"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>
在javaEE下学习web(在eclipse中开发动态的WEB工程,servlet的环境搭建,及servlet的一些方法)的更多相关文章
- (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(七)——eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -&g ...
- Maven学习总结(七)——eclipse中使用Maven创建Web项目
一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如下图所示:
- 转】Maven学习总结(七)——eclipse中使用Maven创建Web项目
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4054814.html 感谢! 一.创建Web项目 1.1 选择建立Maven Project 选择File -& ...
- Maven学习总结(7)——eclipse中使用Maven创建Web项目
Maven学习总结(七)--eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如 ...
- Maven——eclipse中使用Maven创建Web项目
原文:http://www.cnblogs.com/xdp-gacl/p/4054814.html 一.创建Web项目 1.1 选择建立Maven Project 选择File -> New - ...
- 利用Eclipse中的Maven构建Web项目(三)
利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.依据Dynamic W ...
- 在eclipse中使用Maven建web工程项目
在eclipse中使用Maven建web工程项目: 第一种方式: 右键新建maven工程,勾选创建一个简单工程 填入信息,注意打包方式要改为war 点击完成,创建完的工程目录如下: 项目中没有WEB- ...
- eclipse中build path与Web Deployment Assembly的作用,区别
转自:https://blog.csdn.net/heart_mine/article/details/79402792 以下内容只为做个笔记记录已下,有问题可以留言,欢迎补充. 今天在eclipse ...
- 在eclipse中使用Maven建web工程的两种方式
Eclipse版本:Neon Release (4.6.0) Maven版本:3.3.9 第一种方式: 右键新建maven工程,勾选创建一个简单工程 填入信息,注意打包方式要改为war 点击完成,创建 ...
随机推荐
- CollectionView添加头尾部
//上下拉头尾部 self.collectionView.footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self ref ...
- 多文件 定义全局变量的使用 extern
extern 申明变量在其他文件中定义了.如果变量放在*.h头文件,其它cpp文件加载*.h头文件就会出现变量定义重复. 头文件 DHeah.h #include <iostream> u ...
- struts2中Double类型的转换
今天做项目,ssh + Extjs,页面js中定义了几个NumberField,对应的value都是double类型的,其中有个NumberField的name为 name,结果执行的时候报错了,说找 ...
- paper 8:支持向量机系列五:Numerical Optimization —— 简要介绍求解求解 SVM 的数值优化算法。
作为支持向量机系列的基本篇的最后一篇文章,我在这里打算简单地介绍一下用于优化 dual 问题的 Sequential Minimal Optimization (SMO) 方法.确确实实只是简单介绍一 ...
- java dom4j写入XML
引用的两个jar包 dom4j-1.6.1.jar jaxen.jar //=========================代码 import java.io.FileWriter;import j ...
- C#语言基础2016/3/6
一. 基础知识 输入输出 Console.Write();//输出语句,自动换行 Console.WriteLine();//输出语句 Console.WriteLine();输入语句 Consol ...
- linux中的一个看图的软件
毕竟才是初入linux,很多工具,先要要求有个用着,之后再要求小巧强大好用. 看图软件,不喜欢kde或者是gnome这种庞大的桌面环境,也就不喜欢一些跟特定桌面环境沾边的软件(总觉得用软件必须要用特定 ...
- YII2 Activedataprovider 类分页的使用
下面以管理员列表为例说明Activedataprovider分页的具体使用 1.控制器中 public function actionIndex(){ $model=new Admin(); $dat ...
- Hibernate中Session的get和load
hibernate中Session接口提供的get()和load()方法都是用来获取一个实体对象,在使用方式和查询性能上有一些区别.测试版本:hibernate 4.2.0. get Session接 ...
- Android 二维码扫描框 加四个角及中间横线自动下滑
红色为加四个角 黄色为扫描线自动下滑 /* * Copyright (C) 2008 ZXing authors * * Licensed under the Apache License, Ver ...