在tomcat下运行java代码

今天看javaBean的知识,看到例子,试了一下,不仅要编写jsp文件还要写java文件。

么问题来了,怎么在tomcat下使用java代码呢?我之前都是以工程的方式使用的,现在单独一个个建设,不懂怎么处理。于是,上传查了一下。

一、步骤区
1、搭建tomcat。
2、设置jsp的配置。(运行jsp文件
3、在testJSP文件夹中建WEB-INF文件夹,并且新建web.xml文件。web.xml的内容,看下面的代码区。(注:在webapps中建了一个文件夹叫做testJSP)
4、建Servlet类。我取名为initServlet,initServlet.java的内容,看下面的代码区。
5、在WEB-INF下新建一个文件夹叫做classes,然后再建一个文件夹叫做com。将编辑好的initServlet.class文件放在com文件夹下。(此环节容易出问题。查看下面的问题区)
6、运行http://localhost:8050/testJSP/test看到“This is a servlet test.”字符串,说明配置成功了。


成功做完上面的事,就可以实践javaBean了。

二、代码区
1、web.xm

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">
	<display-name>Archetype Created Web Application</display-name>
	<!-- spring配置文件目录 -->
	<servlet>
		<servlet-name>Test</servlet-name>   <!--  容器为程序取的别名  -->
		<display-name>Test</display-name>   <!--  显示内容标题名  -->
		<description>A test Servlet</description>   <!--  描述名  -->
		<servlet-class>com.initServlet</servlet-class>   <!--  描物理文件夹classes里的类名  -->
	</servlet>
	<servlet-mapping>
		<servlet-name>Test</servlet-name>   <!--  容器为程序取的别名  -->
		<url-pattern>/test</url-pattern>   <!--  URL地址访问时输入的名称  -->
	</servlet-mapping>
	
	
	</web-app>



有几个点要说一下:

(1)、servlet标签中的servlet-class标签里面设置的是initServlet类的位置。

(2)、servlet-mapping标签中的url-pattern标签里面设置的是过滤字符串。比如说,url中含有test字符串的,就被映射到initServlet类中。

(3)、servlet-mapping标签中的servlet-name标签里面设置的值要和servlet标签中的servlet-name标签里面的一致。表示拦截下来的东西会隐射到servlet里面的类。

2、initServlet.java

package com;
	import java.io.IOException;
	import java.io.PrintWriter;
	import javax.servlet.ServletException;
	import javax.servlet.http.HttpServlet;
	import javax.servlet.http.HttpServletRequest;
	import javax.servlet.http.HttpServletResponse;
	public class initServlet extends HttpServlet {
		protected void doGet(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException {
			PrintWriter out=response.getWriter();
			out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
			out.flush();
		}
	}


三、问题区

当然,在执行过程中,会遇到一些问题。比如,在编译initServlet.java文件时,报错。


解决方法是,将servlet-api.jar放置在jdk1.7.0_17\jre\lib\ext中。



四、其他

需要说明的是,本文中提到了四个文件夹,testJSP、WEB-INF、classes、com。其中,WEB-INF、classes两个文件夹的名字和位置都必须按照文中说的来。其他两个,随意取,和后面的文件写的一致就可以了。

首先,在Tomcat运行Java代码需要将Java代码打包成一个war包,然后将这个war包部署到Tomcat的webapps目录下。接下来就可以在Tomcat下访问Java代码了。 下面是一个可以在Tomcat运行Java17代码示例: ```java import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class HelloWorldServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().write("Hello, World!"); } } ``` 这是一个简单的Servlet,会在浏览器上输出"Hello, World!"。 现在可以将这个Java代码打包成一个war包了。首先,将代码保存为HelloWorldServlet.java。然后,使用命令行工具编译代码: ```bash javac -classpath $TOMCAT_HOME/lib/servlet-api.jar HelloWorldServlet.java ``` 其中,$TOMCAT_HOME是Tomcat的安装目录,servlet-api.jar是Tomcat提供的Servlet API。接下来,创建一个web.xml文件,内容如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <display-name>Hello World</display-name> <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> ``` 这个文件定义了Servlet的映射,将/hello映射到HelloWorldServlet这个Servlet。现在可以将代码和web.xml文件打包成一个war包了: ```bash jar cvf HelloWorldServlet.war HelloWorldServlet.class web.xml ``` 现在可以将HelloWorldServlet.war部署到Tomcat的webapps目录下,然后启动Tomcat。在浏览器上输入http://localhost:8080/HelloWorldServlet/hello,就会看到"Hello, World!"的输出了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值