你的位置:首页 > Java教程

[Java教程]servlet 3.0无需配置web.xml,使用注入方式配置servlet实现登陆功能(服务器需要支持servlet3.0)


首先申明上面的报错红叉,我也不知道怎么回事.总之能运行.

新建项目时选择java EE6.0,低版本没有servlet3.0.

先看一个基本示例.

Test.java是用来测试无需配置文件,无需静态页面(jsp,html)

直接访问servlet来从服务器上获取信息.

Test.java代码

 1 package com.gys; 2  3 import java.io.IOException; 4 import java.io.PrintWriter; 5  6 import javax.servlet.ServletException; 7 import javax.servlet.annotation.WebServlet; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest;10 import javax.servlet.http.HttpServletResponse;11 12 @WebServlet(13       name="Test",14       urlPatterns={"/test"}15     )16 17 public class Test extends HttpServlet{18   @Override19   protected void doPost(HttpServletRequest req, HttpServletResponse resp)20       throws ServletException, IOException {21     doGet(req, resp);22   }23   24   @Override25   protected void doGet(HttpServletRequest request, HttpServletResponse response)26       throws ServletException, IOException {27     response.setContentType("text/html;charset=utf-8");28     PrintWriter out=response.getWriter();29     out.println("<h1>思思博士</h1>");30   }31 }

访问结果:

看懂上面的name和urlpattern参数的,继续往下看.

servletConfigDemo.java代码

 1 package com.gys; 2  3 import java.io.IOException; 4 import java.util.Enumeration; 5  6 import javax.servlet.RequestDispatcher; 7 import javax.servlet.ServletConfig; 8 import javax.servlet.ServletContext; 9 import javax.servlet.ServletException;10 import javax.servlet.annotation.WebInitParam;11 import javax.servlet.annotation.WebServlet;12 import javax.servlet.http.HttpServlet;13 import javax.servlet.http.HttpServletRequest;14 import javax.servlet.http.HttpServletResponse;15 import javax.servlet.http.HttpSession;16 17 @WebServlet(18     urlPatterns={"/servletConfigDemo.do"},19     loadOnStartup=1,20     name="servletConfigDemo",21     displayName="demo",22     initParams={23         @WebInitParam(name="success",value="success.html"),24         @WebInitParam(name="error",value="error.html")25     }26   )27 public class servletConfigDemo extends HttpServlet{28   @Override29   protected void doPost(HttpServletRequest request, HttpServletResponse response)30       throws ServletException, IOException {31     ServletConfig config=getServletConfig();32     //1.getInitParameter(name)方法33     String success=config.getInitParameter("success");34     String error=config.getInitParameter("error");35     36     System.out.println("success-----"+success);37     System.out.println("errror------"+error);38     39     //2.getInitParameterNames方法40     Enumeration enumeration=config.getInitParameterNames();41     while(enumeration.hasMoreElements()){42       String name=(String)enumeration.nextElement();43       String value=config.getInitParameter(name);44       System.out.println("name-----"+name);45       System.out.println("value-----"+value);46     }47     48     //3getServletContext方法49     ServletContext servletContext=config.getServletContext();50     System.out.println("servletContext----"+servletContext);51     52     //4.getServletName方法53     String servletName=config.getServletName();54     System.out.println("servletName------"+servletName);55     56     request.setCharacterEncoding("UTF-8");57     String userId=request.getParameter("userId");58     String passwd=request.getParameter("passwd");59     60     //判断61     if(userId!=null&&"gys".equals(userId)&&passwd!=null&&"gys".equals(passwd)){62       HttpSession session=request.getSession();63       session.setAttribute("user", userId);64       //跳转65       RequestDispatcher requestDispatcher=request.getRequestDispatcher(success);66       requestDispatcher.forward(request, response);67     }68     else {69       //跳转70       RequestDispatcher requestDispatcher=request.getRequestDispatcher(error);71       requestDispatcher.forward(request, response);72     }73     74   }75 }

index.jsp

 1 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6  7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9  <head>10   <base href="<%=basePath%>">11   12   <title>登陆</title>13   <meta http-equiv="pragma" content="no-cache">14   <meta http-equiv="cache-control" content="no-cache">15   <meta http-equiv="expires" content="0">  16   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">17   <meta http-equiv="description" content="This is my page">18   <!--19   <link rel="stylesheet" type="text/css" href="styles.css">20   -->21  </head>22  23  <body>24  <form action="servletConfigDemo.do" method="post">25    用户名<input type="text" value="" name="userId" /><br/>26    密码:<input type="password" name="passwd" />27    <input type="submit" value="提交" /> 28  </form>29  30  </body>31 </html>

实现登陆功能了