发新话题
打印

j2ee学习--个人整理的J2EE基础知识(bbs.ttwv.com)

j2ee学习--个人整理的J2EE基础知识(bbs.ttwv.com)

因为 最近比较忙,没时间发帖.
这是以前学J2EE整理的笔记,就把这个送给J2EE的新手吧!
写这个的主要目的是为了介绍STRUTS,不过这些基础知识一定要掌握的,而且我会先把SERVLET和MVC设计模式介绍完.再介绍STRUTS.(请大家关注天统社区:bbs.ttwv.com)(附件 是原始的笔记,大家也可以下载!)
请转帖的人,注明文章出处!谢谢!
本章目的:

本章稍微介绍了J2EE的基础知识,重点介绍了web.xml配置文件的运用。因为做WEB应用的一定要搞清楚配置文件怎么控制程序,这个懂了对后面的学习将取到决定性的作用。当然在这里只要形成一个逻辑,不要求记忆。等后面实际用到了,再翻翻这里,这样学习效率才会高。
1.
JavaWeb
应用基础
1.1.
JavaWeb
简介
1.1.1.
JavaWeb
应用程序组成
l
静态文档:HTML、图片、音频、视频等。
l
Applet:运行与客户端的小应用程序。
l
Servlet:运行于服务端的小程序。
l
JSP页面:当JSP页面第一次被浏览器调用时会被编译成一个Servlet文件,所以JSP本质是Servlet。
l
实用Java类:JavaBean和其他Java类,通常来实现业务逻辑。
l
web.xml:描述部署、配置信息。
l
其他资源文件:JavaScript、XML等。

1.1.2.
JavaWeb
应用程序运行环境
l
安装Web服务器。
l
开发、编译Web应用程序,并按照Web服务器的规范组织文件。
l
将应用程序部署到服务器。

1.1.3.
Web
服务器l
Borland Enterprise Server
l
Apache Tomcat
l
JavaServlet Web DevelopmentKit(JSWDK)
l
Allaire JRun
l
Java WebServer
l
Websphere
l
Weblogic

1.1.4.
JavaWeb
应用程序的组织结构l
/WEB-INF目录:web部署目录,该目录专供Web服务器使用。
l
web.xml:部署描述文件,WEB-INF下最重要的文件,描述部署信息、配置信息等。
l
/classes:类文件存放处,如servletjavabean
l
/lib:类库文件存放处。
l
/src:源代码存放处。

1.1.5.
WAR
文件
部署Web应用程序时,可以把它压缩为一个WAR文件,类似于JAR文件。通过使用WAR文件可以大大简化Web应用程序的部署。WAR文件可以通过压缩工具打开。

1.2.
Tomcat
服务器1.2.1.
Tomcat
优缺点l
优点:免费,使用简单。
l
缺点:不支持EJB技术。

1.2.2.
Tomcat
部分术语解释l
Catalina:一个Servlet容器,也就是Servlet的运行环境。
l
Jasper:Tomcat的JSP组建,一个可以解释和执行JSP页面请求的Servlet。
l
mod_webapp:可以把Tomcat连接到Apache Web服务器上的组件。

1.2.3.
Tomcat
服务器的目录结构l
bin:存放启动和关闭tomcat脚本
l
common:存放tomcat所需的jar文件和java文件。
l
conf:包含各种不同的配置文件,其中最重要的是server.xml。
l
logs:存放Tomcat运行过程中产生的日志文件。
l
server:存放Web用于管理Tomcat的两个Web应用程序。
l
webapps:存放Web应用的地方。最简单的发布WEB方式就是将打包后WAR文件,直接拷贝到本目录下。
l
work:存放jsp编译后产生的servlet java源文件和类文件的地方。

1.2.4.
配置Tomcat服务器
l
设置Java_Home变量
我的电脑属性高级环境变量新建环境变量
变量名:Java_Hmoe
变量值:jdk安装目录
l
指定服务器端口
TOMCAT的默认端口是8080
如果后来装了ORACLE那么8080端口会被ORACLE占用,那么这时就需要修改端口了
TOMCAT安装目录下 conf—server.xml
ctrl+f 找到:
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100" c disableUploadTimeout="true" />
port="8080"改成你想要的端口。
l
设置Catalina_Home
我的电脑属性高级环境变量新建环境变量
变量名:Catalina_Home
变量值:tomcat安装目录

1.3.
web.xml
配置文件解释1.3.1.
一个简单的web.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"


xmlns="http://java.sun.com/xml/ns/j2ee"


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee


http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>


<servlet>


<servlet-name>actionF</servlet-name>


<servlet-class>com.servlet.actionForm</servlet-class>


</servlet>


<servlet-mapping>


<servlet-name>actionF</servlet-name>


<url-pattern>/actionFirst</url-pattern>


</servlet-mapping>

</web-app>
部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。
所有部署描述符文件的顶层(根)元素为web-app。请注意,XML元素不像HTML,他们是大小写敏感的。因此,web-AppWEB-APP都是不合法的,web-app必须用小写。

1.3.2.
常用元素标记
l
icon icon元素指出IDEGUI工具用来表示Web应用的一个和两个图像文件的位置。
l
display-name display-name元素提供GUI工具可能会用来标记这个特定的Web应用的一个名称。
l
description description元素给出与此有关的说明性文本。
l
context-param context-param元素声明应用范围内的初始化参数。
l
filter 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。
l
filter-mapping 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servletJSP页面相关联。
l
listener servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。Listener元素指出事件监听程序类。
l
servlet 在向servletJSP页面制定初始化参数或定制URL时,必须首先命名servletJSP页面。Servlet元素就是用来完成此项任务的。
l
servlet-mapping 服务器一般为servlet提供一个缺省的URLhttp://host/webAppPrefix/servlet/ServletName。但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。
l
session -config 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。可通过使用HttpSession setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。
l
mime-mapping 如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。
l
welcom-file-list welcome-file-list元素指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。
l
error-page error-page元素使得在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。
l
taglib taglib元素对标记库描述符文件(Tag Libraryu Descrīptor file)指定别名。此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。
l
resource-env-ref resource-env-ref元素声明与资源相关的一个管理对象。
l
resource-ref resource-ref元素声明一个资源工厂使用的外部资源。
l
security-constraint security-constraint元素制定应该保护的URL。它与login-config元素联合使用
l
login-config login-config元素来指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。
l
security-role security-role元素给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。
l
env-entry env-entry元素声明Web应用的环境项。
l
ejb-ref ejb-ref元素声明一个EJB的主目录的引用。
l
ejb-local-ref ejb-local-ref元素声明一个EJB的本地主目录的应用。

1.3.3.
分配名称和定制的URL
web.xml中完成的一个最常见的任务是对servletJSP页面给出名称和定制的URL。用servlet元素分配名称,使用servlet-mapping元素将定制的URL与刚分配的名称相关联。
l
分配名称
为了提供初始化参数,对servletJSP页面定义一个定制URL或分配一个安全角色,必须首先给servletJSP页面一个名称。可通过 servlet元素分配一个名称。最常见的格式包括servlet-nameservlet-class子元素。


<servlet>


<servlet-name>actionF</servlet-name>


<servlet-class>com.servlet.actionForm</servlet-class>


</servlet>

上面例子给com.servlet.actionForm这个servlet元素分配了一个名称:actionF

l
定制URL
大多数服务器具有一个缺省的serlvet URL
http: //localhost/webAppName/servlet/packageName.ServletName。虽然在开发中使用这个URL很方便,但是我们常常会希望另一个URL用于部署。例如,可能会需要一个出现在Web应用顶层的URL(如,http: // localhost/webAppName /Anyname),并且在此URL中没有servlet项。位于顶层的URL简化了相对URL的使用。此外,对许多开发人员来说,顶层URL看上去比更长更麻烦的缺省URL更简短。
事实上,有时需要使用定制的URL。比如,你可能想关闭缺省URL映射,以便更好地强制实施安全限制或防止用户意外地访问无初始化参数的servlet。如果你禁止了缺省的URL,那么你怎样访问servlet呢?这时只有使用定制的URL了。


<servlet-mapping>



<servlet-name>actionF</servlet-name>


<url-pattern>/actionFirst</url-pattern>


</servlet-mapping>

上面例子给actionF定制了一个URL

1.3.4.
命名JSP页面
命名JSP页面的原因与命名servlet的原因完全相同:即为了提供一个与定制设置(如,初始化参数和安全设置)一起使用的名称,并且,以便能更改激活 JSP页面的URL(比方说,以便多个URL通过相同页面得以处理,或者从URL中去掉.jsp扩展名)。但是,在设置初始化参数时,应该注意,JSP 页面是利用jspInit方法,而不是init方法读取初始化参数的。


<servlet>


<servlet-name>PageName</servlet-name>


<jsp-file>/TestPage.jsp</jsp-file>


</servlet>


<servlet-mapping>


<servlet-name> PageName </servlet-name>


<url-pattern>/UrlTest2/*</url-pattern>


</servlet-mapping>

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

程序清单5-3 TestPage.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

</HEAD>

<BODY BGCOLOR="#FDF5E6">

URI: <%= request.getRequestURI() %>

</BODY>

</HTML>


以上程序打印出用来激活它的URL的本地部分

可以用:

http://localhost:8080/webAppName/TestPage.jsp

http://localhost:8080/webAppName/UrlTest2

http://localhost:8080/webAppName/UrlTest2/ahsdjhsdjkhasdh

访问该页面。

1.3.5.
禁止激活器servlet
servlet JSP页面建立定制URL的一个原因是,这样做可以注册从 initservlet)或jspInitJSP页面)方法中读取得初始化参数。但是,初始化参数只在是利用定制URL模式或注册名访问servletJSP页面时可以使用,用缺省URL
http: //localhost/webAppName/servlet/ServletName 访问时不能使用。因此,你可能会希望关闭缺省URL,这样就不会有人意外地调用初始化servlet了。这个过程有时称为禁止激活器servlet


<servlet>


<servlet-name>Sorry</servlet-name>


<servlet-class>com.servlet.SorryServlet</servlet-class>


</servlet>


<servlet-mapping>


<servlet-name>Sorry</servlet-name>


<url-pattern>/servlet/*</url-pattern>


</servlet-mapping>

程序清单SorryServlet.java

package com.servlet;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public
class SorryServlet extends HttpServlet {


public
void doGet(HttpServletRequest request,HttpServletResponse response)


throws ServletException, IOException {


response.setContentType(
"text/html");


PrintWriter out = response.getWriter();


String title =
"Invoker Servlet Disabled";


out.println(ServletUtilities.headWithTitle(title) +
"<BODY>" +" " + title +


"对不起,您访问的页面出错!" +


"</BODY></HTML>");


}


public
void doPost(HttpServletRequest request,HttpServletResponse response)


throws ServletException, IOException {


doGet(request,response);


}

}

程序清单:ServletUtilities.java

package com.finaField;

public
class ServletUtilities

{


public
static
final String DOCTYPE ="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">;";


public
static String headWithTitle(String title)


{


return(DOCTYPE + "\n" + "<HTML>;\n"+"<HEAD>;<TITLE>;" + title + "</TITLE>;</HEAD>;\n");


}

}


当使用http://localhost:8080/webAppName/servlet/...时就会跳转到错误页面
只有http://localhost:8080/webAppName/anyName才能访问。anyName是指web.xml配置的URL.

1.3.6.
全局禁止激活器:Tomcat
Tomcat 4中用来关闭缺省URL的方法与Tomcat 3中所用的不相同。下面介绍这两种方法:
1.禁止激活器: Tomcat 4
Tomcat 4 用与前面相同的方法关闭激活器servlet,即利用web.xml中的url-mapping元素进行关闭。不同之处在于Tomcat使用了放在 install_dir/conf中的一个服务器专用的全局web.xml文件,而前面使用的是存放在每个Web应用的WEB-INF目录中的标准 web.xml文件。
因此,为了在Tomcat 4中关闭激活器servlet,只需在install_dir/conf/web.xml中简单地注释出/servlet/* URL映射项即可,如下所示:
<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
再次提醒,应该注意这个项是位于存放在install_dir/confTomcat专用的web.xml文件中的,此文件不是存放在每个Web应用的WEB-INF目录中的标准web.xml

2.禁止激活器:Tomcat3
Apache Tomcat 的版本3中,通过在install_dir/conf/server.xml中注释出InvokerInterceptor项全局禁止缺省 servlet URL。例如,下面
是禁止使用缺省servlet URLserver.xml文件的一部分。
<!--
<RequsetInterceptor
className="org.apache.tomcat.request.InvokerInterceptor"
debug="0" prefix="/servlet/" />
-->

1.3.7.
初始化和预装载servlet与JSP页面
l
利用init-param元素向servlet提供初始化参数,init-param元素具有param-nameparam-value子元素。


<servlet>


<servlet-name>InitTest</servlet-name>


<servlet-class>moreservlets.InitServlet</servlet-class>


<init-param>


<param-name>firstName</param-name>


<param-value>aying</param-value>


</init-param>


<init-param>


<param-name>emailAddress</param-name>


<param-value>aying996@163.com</param-value>


</init-param>


</servlet>


<
servlet-mapping>


<servlet-name>InitTest</servlet-name>


<url-pattern>/Init</url-pattern>


</servlet-mapping>
本例定义了InitServlet两个初始化参数,以及访问的url

程序清单InitServlet.java
package moreservlets;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class InitServlet extends HttpServlet {

private String firstName, emailAddress;



public void init()


{


ServletConfig config = getServletConfig();


firstName = config.getInitParameter("firstName");


emailAddress = config.getInitParameter("emailAddress");


}



public void doGet(HttpServletRequest request,HttpServletResponse response)


throws ServletException, IOException


{


response.setContentType("text/html");


PrintWriter out = response.getWriter();


String uri = request.getRequestURI();


out.println(ServletUtilities.headWithTitle("Init Servlet")+


"<BODY>\n" +" Init Parameters:\n"+


"First name: " + firstName + "\n" +" Email address: " + emailAddress + "\n"+


"</BODY></HTML>");


}

}
注:ServletUtilities.headWithTitle()这个方法,请参考1.3.5禁止激活器servlet的程序清单
ServletUtilities.java

l
分配JSP初始化参数
注意,这里有两个重点
1.
使用<jsp-file>而不是<servlet-class>
2.
JSP页使用jspInit而不是init

web.xml


<servlet>


<servlet-name>InitPage</servlet-name>


<jsp-file>/InitPage.jsp</jsp-file>


<init-param>


<param-name>firstName</param-name>


<param-value>aying</param-value>


</init-param>


<init-param>


<param-name>emailAddress</param-name>


<param-value>aying996@163.com</param-value>


</init-param>


</servlet>


<servlet-mapping>


<servlet-name> InitPage</servlet-name>


<url-pattern>/InitPage</url-pattern>


</servlet-mapping>


InitPage.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD></HEAD>

<BODY BGCOLOR="#FDF5E6">

Init Parameters:

First name: <%= firstName %>

Email address: <%= emailAddress %>

</BODY>

</HTML>

<%!

private String firstName, emailAddress;

public
void jspInit()

{


ServletConfig config = getServletConfig();


firstName = config.getInitParameter(
"firstName");


emailAddress = config.getInitParameter(
"emailAddress");

}

%>
1.3.8.
提供应用范围内的初始化参数
一般,对单个地servletJSP页面分配初始化参数。指定的servletJSP页面利用ServletConfig getInitParameter方法读取这些参数。但是,在某些情形下,希望提供可由任意servletJSP页面借助ServletContext getInitParameter方法读取的系统范围内的初始化参数。
可利用context-param元素声明这些系统范围内的初始化值。context-param元素应该包含param-nameparam-value以及可选的descrīption子元素,如下所示:
<context-param>
<param-name>aying</param-name>
<param-value>dotnet_j2ee@163.com</param-value>
</context-param>
可回忆一下,为了保证可移植性,web.xml内的元素必须以正确的次序声明。但这里应该注意,context-param元素必须出现任意与文档有关的元素(icondisplay-namedescrīption)之后及filterfilter-mappinglistener servlet元素之前。

web.xml


<context-param>


<param-name>ayingEmail</param-name>


<param-value>dotnet_j2ee@163.com</param-value>


</context-param>

Jsp调用
getContentEmail:<%=getServletContext().getInitParameter("ayingEmail")%>



1.3.9.
在服务器启动时装载servlet
假如servletJSP页面有一个要花很长时间执行的 init servlet)或jspInitJSP)方法。例如, initjspInit方法从某个数据库的海量数据中查找数据。这种情况下,在第一个客户机请求时装载servlet时将有较长时间的延迟。因此,可利用servletload-on - startup元素规定服务器在第一次启动时装载servlet


<servlet>


<servlet-name>Search</servlet-name>


<servlet-class>myPackage.SearchServlet</servlet-class>


<load-on-startup>1</load-on-startup>


</servlet>


<servlet>


<servlet-name>Results</servlet-name>


<servlet-class>/results/index.jsp</servlet-class>


<load-on-startup>2</load-on-startup>


</servlet>
以上例子将指示服务器首先装载和初始化SearchServlet,然后装载和初始化由位于Web应用的result目录中的index.jsp文件产生的 servlet

附件下载

附件名称: javaWeb开发基础.rar
附件大小: 21.16 KB
上传时间: 2008-1-24 11:41
下载次数: 13
下载地址:

本帖最近评分记录
  • 统领 威望 +12 我很赞同 2008-1-24 15:24
UK软件工作室:系统开发

TOP

专家解读关于吸脂减肥的利弊

专家解读关于吸脂减肥的利弊

吸脂术开展时,医生在减肥者身体某个部位作局部麻醉后切开一小口,然后插入装有脂肪小分离装

置的导管直至脂肪层。上海网站建设http://www.angshsh.cn于是,多余的脂肪就被源源不断地排出

体外。术后扎上绷带以减轻伤口水肿和瘀血,一般4个月左右即可愈合上海网站制作

http://www.web-design-sh.cn

  随着脂肪“吸取器”在皮下“挖洞掘坑”,脂肪被抽出体处的同时,婴儿用品

http://www.86fany.cn大量的血液也随之被吸出,失血越多,上海网站建设

http://www.angshengsh.cn对身体健康的危害也就越大。而且神经末梢还会遭受不同程度的损伤。

  鉴于“吸脂术”的利与弊,上海网站建设http://www.098099.cn打算用这一方法减肥的人应作

慎重考虑:

  1、皮肤有足够弹性者可做,上海网站制作http://www.3wopt.cn否则术后身体会显得干瘪,根

本无曲线可言;

  2、 局部肥胖且身体素质好者可考虑上海网站制作http://www.webdesignas.cn

  3、 全身肥胖者不宜;

  4、 患有心脏病、上海网站建设http://www.webdesign-sh.cn高血压者绝对禁止。

  爱美之心人皆有之。银杏http://www.yinxingwang.com吸脂减肥法绝不是所有肥胖者都适合做

。日本早稻田大学医学院外科教授汤俊进雄说:“想要做这一手术的人应考虑自己是否鲜花速递

http://www.qyxianhua.cn‘完全适全’,而不是勉强行事。”

TOP

发新话题