• IDEA创建Java项目并配置servlet


     

     

    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的原理很简单,这是比较直观的实现,要比直接上来就BS清楚很多。

    常见问题:


    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

    提示的主要问题是权限不足
    解决方案:

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

    2.HttpServlet找不到?

    解决方案:

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

    3.Tomcat中文乱码?

    问题描述:

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

    解决方案
    配置Tomcat的server.xml:

    加一个URIEncodeing选项就可以了,这样走GET请求编码就正常了,这也是Ajax走GET提交时不设置依然是中文乱码的一个原因,这一般情况想不到。

  • 相关阅读:
    jquery animate()方法 语法
    jquery unload方法 语法
    jquery undelegate()方法 语法
    jquery unbind()方法 语法
    jquery trigger() 方法 语法
    jquery toggle()方法 语法
    jquery change() 函数 语法
    jquery blur()函数 语法
    jquery bind()方法 语法
    jquery checked选择器 语法
  • 原文地址:https://www.cnblogs.com/vegetate/p/9997221.html
Copyright © 2020-2023  润新知