仓酷云

标题: JAVA编程:Tomcat+JSP典范设置实例 [打印本页]

作者: 透明    时间: 2015-1-18 11:11
标题: JAVA编程:Tomcat+JSP典范设置实例
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。js  常常看到jsp的初学者问tomcat下怎样设置jsp、servlet和bean的成绩,因而总结了一下怎样tomcat下设置jsp、servlet和ben,但愿对那些初学者有所匡助。

1、开辟情况设置

第一步:下载j2sdk和tomcat:到sun官方站(http://java.sun.com/j2se/1.5.0/download.jsp)下载j2sdk,注重下载版本为WindowsOfflineInstallation的SDK,同时最好下载J2SE1.5.0Documentation,然后到tomcat官方站点(http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi)下载tomcat(下载最新5.5.9版本的tomcat);

第二步:安装和设置你的j2sdk和tomcat:实行j2sdk和tomcat的安装程序,然后按默许设置举行安装便可。

1.安装j2sdk今后,必要设置一下情况变量,在我的电脑->属性->初级->情况变量->体系变量中增加以下情况变量(假定你的j2sdk安装在c:j2sdk1.5.0):

JAVA_HOME=c:j2sdk1.5.0
classpath=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib        ools.jar;(.;必定不克不及少,由于它代表以后路径)
path=%JAVA_HOME%in

接着能够写一个复杂的java程序来测试J2SDK是不是已安装乐成:

publicclassTest{
publicstaticvoidmain(Stringargs[]){
System.out.println("Thisisatestprogram.");
}
}

将下面的这段程序保留为文件名为Test.java的文件。

然后翻开命令提醒符窗口,cd到你的Test.java地点目次,然后键进上面的命令

javacTest.java
javaTest

此时假如看到打印出来Thisisatestprogram.的话申明安装乐成了,假如没有打印出这句话,你必要细心反省一下你的设置情形。

2.安装Tomcat后,在我的电脑->属性->初级->情况变量->体系变量中增加以下情况变量(假定你的tomcat安装在c:        omcat):

CATALINA_HOME=c:        omcat
CATALINA_BASE=c:        omcat

然后修正情况变量中的classpath,把tomat安装目次下的commonlib下的(能够依据实践追加)servlet.jar追加到classpath中往,修正后的classpath以下:

classpath=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib        ools.jar;%CATALINA_HOME%commonlibservlet.jar;

接着能够启动tomcat,在IE中会见http://localhost:8080,假如看到tomcat的接待页面的话申明安装乐成了。

第三步:创建本人的jspapp目次

1.到Tomcat的安装目次的webapps目次,能够看到ROOT,examples,tomcat-docs之类Tomcat自带的的目次;
2.在webapps目次下新建一个目次,起名叫myapp;
3.myapp下新建一个目次WEB-INF,注重,目次称号是辨别巨细写的;
4.WEB-INF下新建一个文件web.xml,内容以下:

<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEweb-app
PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>MyWebApplication</display-name>
<description>
Aapplicationfortest.
</description>
</web-app>

5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容以下:
<html><body><center>
Nowtimeis:<%=newjava.util.Date()%>
</center></body></html>

6.重启Tomcat

7.翻开扫瞄器,输出http://localhost:8080/myapp/index.jsp看到以后工夫的话申明就乐成了。

第四步:创建本人的Servlet:

1.用你最熟习的编纂器(倡议利用有语法反省的javaide)新建一个servlet程序,文件名为Test.java,文件内容以下:

packagetest;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassTestextendsHttpServlet{
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
PrintWriterout=response.getWriter();
out.println("<html><body><h1>Thisisaservlettest.</h1></body></html>");
out.flush();
}
}

2.编译
将Test.java放在c:        est下,利用以下命令编译:

C:Test>javacTest.java

然后在c:Test下会发生一个编译后的servlet文件:Test.class

3.将布局testTest.class剪切到%CATALINA_HOME%webappsmyappWEB-INFclasses下,也就是剪切谁人test目次到classes目次下,假如classes目次不存在,就新建一个。如今webappsmyappWEB-INFclasses下有testTest.class的文件目次布局

4.修正webappsmyappWEB-INFweb.xml,增加servlet和servlet-mapping

编纂后的web.xml以下所示,白色为增加的内容:

<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEweb-app
PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>MyWebApplication</display-name>
<description>
Aapplicationfortest.
</description>
<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<description>AtestServlet</description>
<servlet-class>test.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>

这段话中的servlet这一段声了然你要挪用的Servlet,而servlet-mapping则是将声明的servlet"映照"到地点/Test上

5.好了,重启动Tomcat,启动扫瞄器,输出http://localhost:8080/myapp/Test假如看到输入Thisisaservlettest.就申明编写的servlet乐成了。

注重:修正了web.xml和新加了class,都要重启Tomcat

第四步:创建本人的Bean:

1.用你最熟习的编纂器(倡议利用有语法反省的javaide)新建一个java程序,文件名为TestBean.java,文件内容以下:

packagetest;
publicclassTestBean{
privateStringname=null;
publicTestBean(StringstrName_p){
this.name=strName_p;
}
publicvoidsetName(StringstrName_p){
this.name=strName_p;
}
publicStringgetName(){
returnthis.name;
}
}

2.编译

将TestBean.java放在c:        est下,利用以下命令编译:

C:Test>javacTestBean.java

然后在c:Test下会发生一个编译后的bean文件:TestBean.class

3.将TestBean.class文件剪切到%CATALINA_HOME%webappsmyappWEB-INFclasses        est下,

4.新建一个TestBean.jsp文件,文件内容为:

<%@pageimport="test.TestBean"%>
<html><body><center>
<%
TestBeantestBean=newTestBean("Thisisatestjavabean.");
%>
Javabeannameis:<%=testBean.getName()%>
</center></body></html>

5.好了,重启Tomcat,启动扫瞄器,输出http://localhost:8080/myapp/TestBean.jsp假如看到输入Javabeannameis:Thisisatestjavabean.就申明编写的Bean乐成了。

如许就完成了全部Tomcat下的jsp、servlet和javabean的设置。接上去必要做的事变就是多看书、多读他人的好代码,本人多下手写代码以加强本人在这方面开辟的才能了。

jvm应填写到
c:j2sdkin

给你一个复杂的设置::::

JSP情况设置心得

起首要说的是,利用jdk+tomcat完整能够设置我们的jsp服务器,不再必要实在任何东东,有良多文章先容了Apache,实在基本用不着,一样平常的进修调试tomcat完整能够胜任了。

安装jdk后,tomcat在安装之前会主动找到jdk的安装路径,一起点击"下一步",经由一段工夫的文件复制,最初"close",完成comcat的安装。

您最好往下载一个版本较高的tomcat,好比4.1以上的,由于它不必要设置太多的体系变量,右击"我的电脑",选择"属性"->"初级"->"情况变量"->"体系变量",新建一个TOMCAT_HOME,值设置成你的tomcat地点的路径,好比:D:ProgramFilesApacheGroupTomcat5.5,设置完成。

从入手下手菜单中找到tomcat选项,一样平常翻开按次是:入手下手->程序->ApacheTomcat5.5,选择"StartTomcat",让jsp服务器入手下手运转,此时会翻开一个相似Dos的窗口,会显现一些相干的信息。

假如您利用代办署理上彀,必定要先撤失落代办署理,否则您的jsp程序永久也得不到实行。假如不是代办署理的,这一步就跳过了。

翻开扫瞄器,在地点栏中输出:http://localhost:8080,假如看到有山君(我也不晓得是山君仍是猫)的画面,祝贺您,您乐成了一半。

先来享用一下乐成的高兴吧,请输出上面的代码:

<html>
<head>
<title>FirstPage</title>
</head>
<body>
<H3>Todayis:h
<%=newjava.util.Date()%>
</H3>
</body>
</html>

将该程序保留为:First.jsp,放到Tomcat的ROOT目次下,然后在扫瞄器的地点栏中输出:http://localhost:8080/First.jsp,(First.jsp跟我们保留的文件名的巨细写要分歧)回车,假如不出不测,应当能够看到形如Todayis:hFriApr1108:32:38CST2003的了局。

注重:ROOT是tomcat的默许假造目次,假如要改成本人的假造目次怎样办呢?请持续往下看吧。

要改成本人的假造目次,就要请出server.xml来了,该文件是一个设置文件,在Tomcatconf目次下,利用任何文本编纂软件都能翻开它,我们先找到上面一句:

<ConnectorclassName="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080"minProcessors="5"maxProcessors="75"
enableLookups="true"redirectPort="8443"
acceptCount="100"debug="0"connectionTimeout="20000"
useURIValidationHack="false"disableUploadTimeout="true"/>

这里的port="8080"就是端口,我们完整能够用其余端口来取代,但不克不及是被体系占用的端口(0--1023),这里复杂提一下。

上面我们再往下找,会发明以下的语句:

</Context>
</Host>

我们就应当找到这两个语句,假如不懂E文,您就认定这两个语句好了。然后我们将该语句变动以下:

</Context>
<Contextpath="/myjsp"debug="0"docBase="e:/myjsp"reloadable="true">
</Context>
</Host>

这里的path="/myjsp"就是我们就设置的假造目次了,今后在地点栏中输出http://localhost:8080/myjsp便可。而docBase="e:/myjsp"则是呆板当地路径,他们经由过程这个语句构成一个映照干系,别的照抄。

将下面的First.jsp文件放到e:/myjsp目次下,输出http://localhost:8080/myjsp/First.jsp,是否是有一种喜上眉梢的感到?

在论坛里我见得最多的就是良多人不晓得javaBean文件放到那里,厚道说入手下手我也不晓得,更使人不解的是,十团体有九种分歧的说法,这更让我们茫然。实在这成绩也不是我们想像的那末庞大,我们以一个例子申明:

先创建一个java程序,代码以下:

packagehall;
publicclassSimpleBean{
privateStringmessage="Nomessagespecified";
publicStringgetMessage(){
return(message);
}
publicvoidsetMessage(Stringmessage){
this.message=message;
}
}

保留为SimpleBean.java,编译后会天生一个包,实在就相称于一个目次,也就是SimpleBean.class会寄存在hall目次中,临时保留起来,未来备用。

再输出以下代码:

<HTML>
<HEAD>
<TITLE>ReusingJavaBeansinJSP</TITLE>
</HEAD>
<BODY>
<CENTER>
<TABLEBORDER=5>
<TR><THCLASS="TITLE">
ReusingJavaBeansinJSP</TABLE>
</CENTER>
<P>
<jsp:useBeanid="test"class="hall.SimpleBean"/>
<jsp:setPropertyname="test"property="message"value="HelloWWW"/>
<H1>Message:<I>
<jsp:getPropertyname="test"property="message"/>
</I></H1>
</BODY>

保留在我们方才创建的假造目次e:/myjsp上面,并定名为:BeanTest.jsp。

如今我们应当将hall(包)目次放在哪儿呢?别急,我们先在e:/myjsp下创建一个文件夹WEB-INF,然后再在WEB-INF下创建一个classes文件夹,最初将hall目次放到classes下,固然,hall下的字节码文件SimpleBean.class也一并要移过去,而SimpleBean.java就和BeanTest.jsp放到统一目次吧(能够不必要放的,本人尝尝)。

从头启念头器(假如您试了很多多少次都不可,这一步必定要做),在扫瞄器中输出:http://localhost:8080/myjsp/BeanTest.jsp,您看到了甚么?呵,别告知我您甚么都没看到,那一定是您设置的成绩了。

Java进修-手艺文章中央

初学者问的诸如:《如何设置情况变量》《如何运转Servlet》啊?如许的成绩太多了,如今我写一个初学者进门必读,以便对初学者有引导感化!

起首是下载工具:

我倡议初学者用Editplus+JDK,我以为假如用比方JB,Eclipse,JCreator,固然刚入手下手的时分对照便利,可是确使初学者门不晓得如何设置情况变量,

从而难以到达知其然,知其以是然的境地

能够经由过程以下地点下载:

Editplus(最新版本是v2.11):http://count.skycn.com/softdown.php?id=3641&url=http://sc-http.skycn.net/down/epp211a_cn.exe(要照注册码就本人找吧,网上良多的)

JDK(最新版本是Java2sdk1_5_0):http://192.18.97.54/ECom/EComTicketServlet/BEGIN30AA3B63E5C2F61C8C26F84B78970A98/-2147483648/926882595/1/627578/627410/926882595/2ts+/westCoastFSEND/jdk-1.5.0_04-oth-JPR/jdk-1.5.0_04-oth-JPR:3/jdk-1_5_0_04-windows-i586-p.exe(这是ForWindows)

然后就是安装JDK,我是把它装到从c:JDK目次上面:

然后就是CLASSPATH的成绩了:

正如操纵体系使用PATH来搜刮可实行程序一样,Java运转情况也会遍历CLASSPATH来查找类,即使是HelloWorld如许复杂的程序,JVM也会遍历

CLASSPATH界说的每个路径,直到找到响应的文件为止。

信任人人用的体系不是2k就是XP,然后就应该以下设置Path:

我的电脑->属性->初级->情况变量

然后在情况变量的Path前面追加:C:JDKin;.;C:JDKlib

也能够如许设置:C:JDKin;.;C:JDKlibdt.jar;C:JDKlib        ools.jar

★记着:情况变量中的.牢记不克不及少,它暗示以后路径,假如少失落呈现的毛病等会就说!

dt.jar是关于运转情况的类库,tools.jar是关于一些工具的类库

假如没有设置:C:JDKin,则会呈现"javac′不是外部或内部命令,也不是可运转的程序或批处置文件。"如许的毛病。

然后上面就该写程序了:

起首是(HelloWorld.java),翻开Editplus,新建一个Java文件,请照着以下输出,要一字不漏,而且分清巨细写:

publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("Hello,World!");
}
}

然后把这个文件保留(ctrl+s)到HelloWorld.java,记着巨细写必定要分清,是HelloWorld.java不是helloworld.java大概别的的

上面就该运转了,入手下手->运转->cmd

在把持台中把目次切换到以后目次:

javacHelloWorld.java
javaHelloWorld

你就会在把持台上瞥见输入的Hello,World!(没出来?我把电脑吃了:))

javac是编译命令,它把HelloWorld.java编译成HelloWorld.class

java就是注释命令,JVM把HelloWorld.class注释实行.

在这个时分:

1。假如呈现Exceptioninthread"main"java.lang.NoClassDefFoundError:HelloWorld

那就是你在情况变量中没有加上谁人.(dot)

2。假如呈现Exceptioninthread"main"java.lang.NoSuchMethodError:main

大概HelloWorld.java:1:Publicclasshelloworldmustbedefinedinafilecalled

"HelloWorld.java".

那就是你没有分清巨细写的写进这个HelloWorld,大概保留得时分没有保留为HelloWorld.java

这个名字必定要跟publicclass的名字一样

关于情况变量的成绩就说到这里,上面我先所说怎样在Editplus内里编译和运转,在Tools->参数设置->设置用户工具

1.增加工具(增加使用程序)

菜单笔墨:CompileJavaProgram

程序:C:JDKinjavac.exe

参数:文件称号

初始目次:文件目次

2.增加工具(增加使用程序)

菜单笔墨:RunJavaProgram

程序:C:JDKinjava.exe

参数:文件称号(不含扩大名)

初始目次:文件目次

工具组称号能够任意添,好比DebugJavaProgram

然后在Tools的下拉菜单中,你就会瞥见CompileJavaProgram和RunJavaProgram这两个选项,今后你就能够使用ctrl+1编译和ctrl+2运转程序了

上面就会商Servlet的运转:

起首要运转Servlet,则必要JSP/Servletcontainer,我倡议初学者用Tomcat

Tomcat(最新版本5.5):http://apache.justdn.org/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9.exe然后把这个紧缩包解压到:

C:Tomcat

然后再设置情况变量:

增加三个体系变量:

JAVA_HOME:C:JDK
TOMCAT_HOME:C:Tomcat
CLASSPATH:%JAVA_HOME%lib;%TOMCAT_HOME%lib

Tomcat的情况变量就设置终了了,上面查验Tomcat是不是可以运转:

在把持台直达到C:Tomcatin这个目次,运转startup,然后回呈现一个窗口,连跳一年夜串工具,最初暗示Server已运转

在扫瞄器中输出http://localhost:8080,呈现接待界面,则暗示Tomcat没成绩了

然后和下面一样,写进你的第一个Servlet

importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassHelloWorldextendsHttpServlet
{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException
{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
out.println("<html><head><title>");
out.println("ThisismyfirstServlet");
out.println("</title></head><body>");
out.println("<h1>Hello,World!</h1>");
out.println("</body></html>");

}
}

然后还是用javacHelloWorld.java来编译这个文件,假如呈现没法importjavax.servlet.*

那末就是应当把C:Tomcatcommonlib内里的servlet.jar(依据实践来看)文件拷贝到C:JDKjrelibext中,再次编译,就没有成绩了!

然后在Tomcat目次内里的C:TomcatwebappsROOT内里按以下的文件布局:

ROOTindex.html
ROOTwelcom.jsp
ROOTWEB-INFlibMyServlet.jar(假如你的servlet的.class打成了.jar文件,则放在lib上面)
ROOTWEB-INFclassesHelloWorld.class(把下面天生的HelloWorld.class文件放在这个内里)

然后在扫瞄器中输出http://localhost:8080/servlet/HelloWorld,因而Server众看所回的报错了:Error404--NotFound

怎样回事呢?

Servlet必需利用C:TomcatwebappsROOTWEB-INF这个目次上面的web.xml文件举行注册,用EP翻开这个web.xml文件,在内里到场

<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>

如许的布局

<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>

暗示指定包括的servlet类.
而以下的布局

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

暗示指定HelloServlet应该映照到哪种URL形式。

在修正web.xml终了事后,从头启动Server,然后再输出http://localhost:8080/servlet/HelloWorld,那末偌年夜一个Hello,World!等着你呢。
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
作者: 再见西城    时间: 2015-1-24 12:40
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 愤怒的大鸟    时间: 2015-2-1 11:34
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 莫相离    时间: 2015-2-7 02:24
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 柔情似水    时间: 2015-2-10 04:10
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 不帅    时间: 2015-2-28 19:20
Java 编程语言的风格十分接近C、C++语言。
作者: 精灵巫婆    时间: 2015-3-10 04:55
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 老尸    时间: 2015-3-17 04:12
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 海妖    时间: 2015-3-23 19:13
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2