如果想要局域网可以访问到tomcat需要
1.引入以下jar,可从tomcat的安装目录lib里找到
2.创建自己的servlet实现Servlet接口
@WebServlet(name = "getServletName", urlPatterns = { "/login" },
initParams = {@WebInitParam(name = "name",value = "maozi")}
)
MyServlet implements Servlet {
在类上采用注解方式 可以不用web.xml注册使用servlet;
注解使用方法
name = "getServletName" 表示ServletConfig获取名
urlPatterns = { "/login" } 表示方法途径,在网页上进行网址拼接
initParams = {@WebInitParam(name = "name",value = "maozi")} 表示携带参数
顺序和途径是:本项目--》 tomcat --》 向网页
//主要通过方法进行与网页的互动
public void service(ServletRequest request,
ServletResponse response) throws ServletException,
IOException {
}
其中ServletRequest为请求,可从此实例获取到请求信息
ServletResponse为请求响应,可以从此实例进行网页内容修改及展示
3.使用HttpServlet
HttpServlet类覆盖了javax.servlet.GenericServlet类。使用HttpServlet时,还要借助分别代表Servlet请求和Servlet响应的HttpServletRequest和HttpServletResponse对象。HttpServletRequest接口扩展javax.servlet.ServletRequestHttpServletResponse扩展javax.servlet.ServletResponse,是请求交互主要使用的Servlet;
使用时需要明白HttpServlet通过对Servlet的service方法进行优化,使其变得简便,也从接口的形式变为了继承类。不需要实现众多方法,只需要直接使用以下方法之一:doGet、doPost、doHead、doPut、doTrace、doOptions和doDelete。其方法参数返回为HttpServletRequest request, HttpServletResponse response(HTTP环境中的Servlet请求,HTTP环境中的Servlet响应)
例:
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher=request.getRequestDispatcher("/WEB-INF/form_http.html");
dispatcher.forward(request, response);
}
//如果在网页或请求中有对相同路径的返回请求 也会通过 此类 的其他对应方法
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<head>");
writer.println("<title>" + TITLE + "</title></head>");
writer.println("</head>");
writer.println("<body><h1>" + TITLE + "</h1>");
writer.println("name:" + request.getParameter("name") + "</br>");
writer.println("name:" + request.getParameter("address") + "</br>");
writer.println("name:" + request.getParameter("deliveryMethod") + "</br>");
writer.println("name:" + request.getParameter("instruction") + "</br>");
writer.println("name:" + request.getParameter("checkbox") + "</br>");
writer.println("name:" + request.getParameter("reset") + "</br>");
writer.println("name:" + request.getParameter("submit"));
writer.println("</body>");
writer.println("</html>");
}
form_http.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<br>
<form method='post'>
<input name='name'/>
</br>
<textarea name='address' cols='40' rows='5'></textarea>
</br>
<select name='country'>");
<option>United States</option>
<option>Canada</option>
</select>
</br>
<input type='radio' name='deliveryMethod' value='First Class'/>
</br>
<input type='radio' name='deliveryMethod' value='Second Class'/>
</br>
<textarea name='instruction' cols='40' rows='5'></textarea>
</br>
<textarea name='instruction' cols='40' rows='5'></textarea>
</br>
<input type='checkbox' name='catalogRequest'/>
</br>
<input type='reset'/>
</br>
<input type='submit'/>
</form>
</body>
</html>
4:通过web.xml部署
<servlet> <servlet-name>MyServletfoxml</servlet-name> <servlet-class>servlet.MyServletfoxml</servlet-class> <load-on-startup>10</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MyServletfoxml</servlet-name> <url-pattern>/xml</url-pattern> </servlet-mapping>
总结:
Servlet技术是Java EE技术的一部分。所有Servlet都运行在Servlet容器中,容器和Servlet间的接口为javax.servlet.Servlet。javax.servlet包还提供了一个名为GenericServlet的Servlet实现类,该类是一个辅助类,以便可以方便的创建一个servlet。不过,大部分servlet都运行在HTTP环境中,因此派生一个javax.servlet.http.HttpServlet的子类更为有用,注意HttpServlet也是GenericServlet的子类。