引言
小编现在是心在曹营身在汉啊,因为虽然小编在工作岗位上干的是.net方面的活,但是小编却无时无刻不在思念java啊,学习java不是因为小编在.net方面已经超神了,没有什么挑战性了。如果小编真的是这样的话,我早就直接在曹营吃吃喝喝了,谁还回去啊。只是小编在以后的工作方向上还是比较偏向java方面的。所以小编需要学习点java知识为以后北漂储备点粮食。
虽然小编对servlet的工作原理还不是很清楚,但是这并不影响我们使用哈,这个东西就像我们平时生活中的一些工具一样,像computer,ipad,phone。。。一样,我们也不知道他们具体是怎样的原理,但是这并不耽误我们使用和快乐啊,学习心得东西需要先会用然后再研究原理和扩展他们。
第一个程序
小编在这个简单的程序中使用Tomcat作为服务器,其实这个东西和我们平时用的IIS和Apache一样,只不过Tomcat除了可做web服务器以外还可以作为应用服务器。下面简单介绍一些Tomca的几个需要用到的文件。
首先我们在Tomcat的webapps文件夹中创建一个文件夹存放我们的项目中用到的东西我这叫test_servlet;然后里面在新建一个文件夹叫WEB-INF,和WEB-INF平级的存放HTML文件,也就是我们的页面。然后在WEB-INF的内部分别有两个文件夹:classes用来存放我们编译好的java类,lib文件夹用来存放我们需要依赖的jar包等,还有一个web.xml文件,里面是关于servlet的映射。我们这个小程序大概就用到这么几个文件。一次完整的请求过程图
代码展示
看我们界面代码:
<html> <head> <title>登录</title> <body> <form action="loginServlet"> 用户:<input type="text" name="username"><br> 密码:<input type="text" name="password"><br> <input type="submit" value="登录"> </form> <body> </head> </html>
servlet类代码
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class LoginServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String username=request.getParameter("username"); String password=request.getParameter("password"); System.out.println("username=" + username); System.out.println("password=" + password); response.setContentType("text/html;GB18030"); response.getWriter().println("登录成功!"); } }
web.xml文件代码
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping> </web-app>
在这里主要介绍一些web.xml文件,其余的两个我们都能看懂,代码非常的简单,在xml文件中每一个web应用都会对应类似上面的一组映射。这两个节点的名称是不能改变的,只能是<servlet></servlet>和<servlet-mapping>
</servlet-mapping>否在tomcat不能解读这个xml文件。其中<servlet-name>MyServlet</servlet-name>中Myservlet是我们给自己的那个servlet类起的一个别名,这个名称随便起。<servlet-class>LoginServlet</servlet-class>需要填写这个类的完成路径,在上面的代码中我们可以看出这个类没有包只有一个类名,所以这里只写一个类名就够了。
<servlet-mapping></servlet-mapping>节点之间填写对这个类的映射,首先我们需要知道对那个类进行映射,这里通过别名来查找所以<servlet-name>MyServlet</servlet-name>应该填写上一个节点的别名,因为我们传输是通过HTTP协议进行的,所以在<url-pattern>/loginServlet</url-pattern>应该填写这个类的URL请求形式,这个节点之间也是我们任意填写的,我们可以写成<url-pattern>/exam/LoginServlet</url-pattern>,只要我们和form表单的action中填写这个地址就没有问题。
以上基本上是这个小程序中的内容,只要我们编译完成以后将对应的文件放在指定的文件夹中,然后启动tomcat后在浏览器中输入localhost:8080/test_servlet/Login.html就可以正常启动了。
小结
通过这个小程序对servlet的位置和使用有了一定的了解,可以说迈出了屌丝的第一步,当然如果我们学习一个新东西止步于此的话,那就永远的一身屌丝气质了,所以我们还需要研究它的原理以及和Tomcat的关系,这样我们才能屌丝逆袭,所以在以后的学习中会分享对servlet原理的研究。