前几天突发奇想要来学一下jsp,熟悉了一下jsp/servlet,正兴致勃勃要来操作的时候却发生了杯具。
在tomcat目录下面配置jsp,servlet,javaBean很容易就成功了,但是到了在esclipse配置的时候却从昨天搞了今天,杯具。目前不完全知道是什么问题造成的。
首先,下载tomcat安装版,端口除非必要还是不要乱改了,因此重装了一次。
网上找了一篇配置的,一路成功,需要注意的是那个calalina_home等等貌似完全没有作用,要用的时候再配置,后文附上参考的配置方法。
然后就在esclipse上操作了,将工程什么的,当然还是会的,虽然跟vs有那么点不同,但是好在英文还是认识的,就这么配置下来。然后创建servlet,编写代码,配置xml,一直发生404错误,或者从tomcat控制台上无法进入目录(现在发现在esclipse上运行程序的时候,控制台未必能够进去,现在的情况就是如此,网址可以hello了,控制台不能进去,所以,不能以控制台为衡量标准),或者是输入网址后半天没反应,到处百度,谷歌,,鸡鸡。。都说是路径问题啊,搞了半天还是没搞定(因为路径确实没错)晚上发现了一个问题。就是servlet代码中的我只对doPost编辑了代码,而doGet的却是空的,然后我加了一句
this.doPost(request, response);
居然就成功了。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);//重点啊
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>hello servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello I'm here!</h1>");
out.println("</body");
out.println("</html>");
out.close();
}
还有就是
貌似添加servlet是在src那,而添加jsp确实在webcontent那。servlet对其java代码进行run ons erver,jsp对其jsp文件进行run on server;
配置花了这么多时间,所以,,,不能放弃@@@
以下是我参考的配置
第一步:下载j2sdk和tomcat:到sun官方站点
最新的jdk为1.6.04,tomcat为6.0,建议jdk1.4以上,tomcat4.0以上
第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后设置按照路径进行安装即可。
1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk安装在c:\j2sdk1.4.2):
JAVA_HOME=c:\j2sdk1.4.2
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径)
path=%JAVA_HOME%\bin
接着可以写一个简单的java程序来测试J2SDK是否已安装成功:
|
然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令
javac Test.java
java Test
此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话,你需要仔细检查一下你的配置情况。
2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat):
CATALINA_HOME:c:\tomcat
CATALINA_BASE:c:\tomcat
TOMCAT_HOME: C:\Tomcat
然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到classpath中去,修改后的classpath如下:
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;
接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
第三步:建立自己的jsp app目录
1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;
2.在webapps目录下新建一个目录,起名叫myapp;
3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
4.WEB-INF下新建一个文件web.xml,内容如下:
|
5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
|
6.重启Tomcat
7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。
第四步:建立自己的Servlet:
写入你的第一个Servlet:
在你新建的Application myapp/WEB-INF/classes/test目录下新建HelloWorld.java
|
然后照样用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servl
et.*
那么就是应该把C:\Tomcat\common\lib里面的servlet-api.jar文件拷贝到C:\JDK\jre\lib\ext中,再次编译,就没有问题了!
然后在Tomcat目录里面的C:\Tomcat\webapps\myapp里面按如下的文件结构:
myapp\index.jsp
myapp\WEB-INF\classes\test\HelloWorld.class(把上面生成的HelloWorld.class文件放在这个
里面)
然后在浏览器中输入http://localhost:8080/myapp/HelloWorld,于是Server众望所归的报错了:Error 404--Not Found
怎么回事呢?
Servlet必须使用C:\Tomcat\webapps\myapp\WEB-INF这个目录下面的web.xml文件进行注册,
用EditPlus打开这个web.xml文件,
在<web-app></web-app>添加下面这段程序:
|
为什么呢?
因为 这样的结构
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>test.HelloWorld</servlet-class>//类的路径
</servlet>
表示指定包含的servlet类.
而以下的结构
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
表示指定HelloServlet应当映射到哪一种URL模式。
在修改web.xml完毕过后,重新启动Server,然后再输入http://localhost:8080/myapp/HelloWorld,,那么偌大一个Hello,World!等
着你呢,恭喜你!
第五步:建立自己java Bean
1. 在你新建的Application myapp/WEB-INF/classes/test目录下新建TestBean.java
|
然后照样用javac TestBean.java来编译这个文件。
2.然后在你新建的应用程序目录myapp下新建一个新的jsp文件:testBean.jsp
|
好了,确定各个文件的位置:
|
3.重启Tomcat如果需要的话,在浏览器输入:http://localhost:8080/myapp/testBean.jsp 幸运的话就会看到:
Java Bean Test: The author's blog address isHttp://yexin218.cublog.cn
这样就完成了整个Tomcat下的jsp、servlet和javabean的配置。
第六步:配置虚拟目录
打开 Tomcat6.0\conf\server.xml 文件,在 <Host> 和 </Host> 之间加入
|