IDEA 之Servlet
-
创建packet www.servlet
-
新建一个class类,命名MyServlet
-
ctrl+鼠标点击Servlet,查看内部
-
回到MyServlet,ctrl+o重写函数
如果快捷键失效,可以进去Servlet,复制,改写 -
改写Service
public void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException{ System.out.println("我是Servlet,我已经接收客户端的信息"); }
-
注意点:我们无法直接通过http://localhost:8081/MyServlet访问,也不能通过http://localhost:8081/www.servlet/MyServlet访问
但是我们可以通过http://localhost:8081/index.jsp访问到页面
主要原因在于:
我们的项目都是部署到Tomcat上面,我们可以看到index.jsp正好在mytomcat001_war_exploded下面的。MyServlet路径则是如下图所见
那如果我们按照上述的把路径都加入,是否可以访问了?
答案依旧是否定的,Servlet只能通过映射的方式访问,它所处的位置是不允许被访问的 -
在web.xml里面加入映射
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>www.servlet.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping>
在此访问http://localhost:8081/myservlet,虽然页面显示空白,但是控制台显示文字
-
实现交互
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException{ System.out.println("我是Servlet,我已经接收客户端的信息"); servletResponse.getWriter().write("Hello Client"); }
进一步改写public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException{ String id = servletRequest.getParameter("id"); System.out.println("我是Servlet,我已经接收客户端的信息"+id); servletResponse.setContentType("text/html;characterset=utf-8"); servletResponse.getWriter().write("Hello Client"); }
通过?id=520 这个传入