您的位置:首页 > 编程语言 > Java开发

IDEA创建Java项目并配置servlet

2017-05-18 22:59 351 查看



1.创建JavaWeb项目

File --> New --> Project...



设置工程名字:



创建完成后工程结构如下:




2.设置Web项目

2.1 在WEB-INF 目录下点击右键,New --> Directory,创建 classes 和 lib 两个目录

classes目录用于存放编译后的class文件,lib用于存放依赖的jar包



2.2 File --> Project Structure...,进入 Project Structure窗口,点击 Modules --> 选中项目“JavaWeb” --> 切换到 Paths 选项卡 --> 勾选 “Use module compile output path”,将 “Output path” 和 “Test output path” 都改为之前创建的classes目录

即将后面编译的class文件默认生成到classes目录下



2.3 点击 Modules --> 选中项目“JavaWeb” --> 切换到 Dependencies 选项卡 --> 点击右边的“+”,选择 “JARs or directories...”,选择创建的lib目录



选择Jar Directory



2.4 配置打包方式Artifacts:点击 Artifacts选项卡,IDEA会为该项目自动创建一个名为“JavaWeb:war exploded”的打包方式,表示 打包成war包,并且是文件展开性的,输出路径为当前项目下的 out 文件夹,保持默认即可。另外勾选下“Build on make”,表示编译的时候就打包部署,勾选“Show content of elements”,表示显示详细的内容列表。




3.配置Tomcat

3.1 Run -> Edit Configurations,进入“Run Configurations”窗口,点击"+"-> Tomcat Server -> Local,创建一个新的Tomcat容器



3.2 在"Name"处输入新的服务名,点击“Application server”后面的“Configure...”,弹出Tomcat Server窗口,选择本地安装的Tomcat目录 -> OK



3.3 在“Run Configurations”窗口的“Server”选项板中,去掉勾选“After launch”,设置“HTTP port”和“JMX port”,点击 Apply -> OK,至此Tomcat配置完成。




4.JavaWeb测试

4.1 Run -> Edit Configurations,进入“Run Configurations”窗口,选择之前配置好的Tomcat,点击“Deployment”选项卡,点击“+” -> “Artifact”-> 选择创建的web项目的Artifact...修改“Application context”-> Apply -> OK



说明:此处的Application context是指定本工程的根目录

4.2 在index.jsp文件中的body之间添加要显示的内容,然后点击“运行”的绿色三角

打开浏览器,输入:localhost:8080/JavaWeb



至此,intellij idea创建并设置javaweb工程全部完成,下面是在其中编写并运行Servlet。


5.Servlet简单实现

5.1. 编写servlet源文件

在src目录下新建HelloServlet.java,并编写一下代码并进行编译:



编译后会发现在classes目录下生成了HelloServlet.class文件



5.2. 部署servlet

方法一:

在WEB-INF目录下web.xml文件的标签中添加如下内容:



方法二:

在HelloServlet文件的类前面加上:@WebServlet("/hello")



5.3. 运行servlet

点击运行按钮



控制台出现successfully则tomcat服务启动成功!打开浏览器输入:localhost:8080/JavaWeb/HelloWorld即可查看servlet运行状态了.




6.接受Get和Post请求的Servlet

创建一个Client类,定义两个基本方法。



下面,我们来实现这两个方法,先看看GET,比较简单:





注释都很详细了,只是要说一点,GET方式提交的参数是绑定在URL中的,所以这部分要单独处理,进行转码,参数是Map类型,那么我们遍历这个Map获取参数,并拼装成?,&的格式就行了。下面来看POST,这个复杂一点:



这中间就是设置POST方式时要开启两个选项,不能忘了。而且POST方式提交参数,参数是在请求体中发送的,就是和GET的一个很重要的区别。模拟好了两个方法,下面我们来写Servlet,这就很简单了,我们使用RequestServlet:



好了,我们来测试GET请求,写主函数:



在控制台,我们就得到了如下的输出:



因为我们打印了还原出的参数形式,这里没有用中文,所以看不出编码效果,中文效果大家可以自行测试。 POST方式就是修改主函数中调用的方法,这里不再测试了。 至此我们已经可以脱离浏览器进行GET/POST请求了,基本上网络传输的方式我们都可以来看看服务器返回的原始数据了,设置好URL和所需参数,直接运行就行了。 Servlet的原理很简单,这是比较直观的实现,要比直接上来就B\S清楚很多。


常见问题:


1.Tomcat权限问题?

问题描述:

下午9:11:27 All files are up-to-date

下午9:11:27 All files are up-to-date

下午9:11:27 Error running Tomcat 8.0.18: Cannot run program "/Users/horse_leo/Documents/apache-tomcat-8.0.18/bin/catalina.sh" (in directory "/Users/horse_leo/Documents/apache-tomcat-8.0.18/bin"): error=13, Permission denied

提示的主要问题是权限不足

解决方案:

打开终端,进入tomcat\bin目录,然后执行chmod 777 *.sh


2.HttpServlet找不到?

解决方案:

到/tomcat/lib下导入servlet-api.jar


3.Tomcat中文乱码?

问题描述:

用GET方式测试时,参数是英文没有问题,可是出现中文时,也转码了,但没有配置的Tomcat依然读取的是乱码

解决方案

配置Tomcat的server.xml:



加一个URIEncodeing选项就可以了,这样走GET请求编码就正常了,这也是Ajax走GET提交时不设置依然是中文乱码的一个原因,这一般情况想不到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: