JeromeHuang

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

      作为我的第一篇博客,用来纪念我调了好几天的Idea下的servlet开发。刚从Eclipse转到Idea,很是不方便,各种问题,网上资料也不多,先是看了一段“IntelliJ IDEA教程集合-YouMeek.com整理”视频,感觉似懂非懂,然后着手编写程序,按照网上大部分的教程(可参考http://www.cnblogs.com/shihui142857/p/3827062.html)pia pia pia 地敲起代码,发现总是不成功,最后磨了好几天才知道很多细节问题,下面分享一下。

     (建工程等步骤我就不再提了,按照上面网页链接做就OK)

     Q1:出现Tomcat 1099 8080端口被占用,网上有很多解决方案,比如先查占用的端口号 netstat -aon | find "8080",然后通知命令tasklist找出进程名字,再在任务管理器中kill。如果确定不是其他程序占用,是之前开的Tomcat没有正常关闭,其实有个最简单的办法,就是找到任务管理器中的java进程,直接kill。

     Q2:在配置Tomcat容器的时候要记得在Deployment中添加Deploy at the server startup,通知可以设置访问的相对路径如下图所示

    Q3:idea创建servlet问题,idea创建servlet会自动添加注解 @WebServlet(name = "TestServlet"),之前没解决问题的时候,在QQ群里有人说这个不能自动添加,说这个有问题,但事实就是自动添加了,但貌似也没啥问题。但是关键问题在于idea创建servlet后,doPost函数和doGet函数的位置是相反的,也就是说Eclipse创建serlvet的时候是先doGet,再doPost函数,而idea则是相反的。由于习惯性行为,我把输出代码写在了第一个函数doPost里,导致调了一天都没调出来,找各种问题,太粗心了。

    今天终于把servlet正常显示了,心情一下子舒坦,也许是前几天天天和女友吵架导致人品急剧下降,so easy的代码都挑不出$_$。今天哄了哄女友,就调出来了(happy)。下面还是贴一下我的代码,参考价值不大,给自己留个备份,第一份博客^_^

TestServlet.java文件

package mypackage;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "TestServlet")
public class TestServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out=response.getWriter();
        out.println("<html>");
        out.println("<head><title>servlet test</title></head>");
        out.println("<body>hello TestServlet</body>");
        out.println("</html>");
    }
}

 

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>mypackage.TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/TestServlet</url-pattern>
    </servlet-mapping>
</web-app>

 

  

 

posted on 2014-12-27 10:36  JeromeHuang  阅读(1058)  评论(0编辑  收藏  举报