Servlet学习笔记

来源:互联网 发布:网络电视必须买盒子么 编辑:程序博客网 时间:2024/06/05 19:42

Tomcat配置安装

1.安装Tomcat
2.配置环境变量

建立工程

在Tomcat文件夹下面找到webapps,建立一个自己的文件夹再建一个WEB-INF的文件夹,再建立如图下的结构

web name
其他文件或者index.html
WEB-INF
web.xml:配置文件,符合J2EE标准
lib:放库文件
classes:存放编译好的Serverlet文件


在classes下建立工程

实现Servlet方式

实现servlet接口

这种方法是可以运行在所有服务器端的servlet,最重要的是servlet方法
package ustb;import javax.servlet.*;import java.io.*;public class HelloWorld implements Servlet{//初始化 ,类似于构造函数,只被调用一次//当用户第一次访问该servlet时@Overridepublic void init(ServletConfig arg0) throws ServletException {// TODO Auto-generated method stubSystem.out.println("init it");}@Overridepublic ServletConfig getServletConfig() {// TODO Auto-generated method stubreturn null;}//负责处理业务逻辑//当用户每访问servlet一次都会被调用一次//req用于获得客户端/浏览器的信息//res用于向客户端/浏览器返回信息@Overridepublic void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {// TODO Auto-generated method stubSystem.out.println("service it");//从res中得到PrintWriterPrintWriter pw = res.getWriter();pw.println("hello,world");}@Overridepublic String getServletInfo() {// TODO Auto-generated method stubreturn null;}//销毁servlet实例,释放内存//调用的情况1.reload该servlet(webapp)//关闭tomcat//关机@Overridepublic void destroy() {// TODO Auto-generated method stubSystem.out.println("destroy");}}

继承GenericServlet

只用重新写service方法就可以
package ustb;import javax.servlet.*;import javax.servlet.GenericServlet;import java.io.*;public class HelloWorld extends GenericServlet{@Overridepublic void service(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {// TODO Auto-generated method stubPrintWriter pw = arg1.getWriter();pw.println("hello world");}}

继承HttpServlet

最重要,专门给web使用的Servlet,是抽象类型,必须重写

需要重写doGet,doPost方法,接收,发送浏览器信息
用getParameter获取内容
用sendRedirect跳转
get方式调用的时候是在浏览器中直接输入URL的时候调用的
post方式是在表单中提交,并且method是post

配置xml文件

<servlet><servlet-name>hello</servlet-name><servlet-class>ustb.HelloWorld</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/wangchenhao</url-pattern></servlet-mapping>

第一行是给servlet起名字,任意的
第二行是指明servlet的路径(包名+类名)
第三行时映射关系,同第一行的名字
第四行浏览器访问servlet输入的url

访问

在浏览器地址栏输入

http://localhost:8080/myWebSite/sp

表单验证

前台的申请有post、get两种,用pw.write向前台返回数据(html)等
getParameter方法中传的是标签的name
表单的action=logincl、sendRedirect= 写的都是url,就是在servlet注册的url,不是类名,这里要初一注意
package ustb;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.*;;public class Login extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//中文乱码resp.setContentType("text/html;charset=gbk");PrintWriter pw = resp.getWriter();//返回登录界面pw.println("<html>");pw.println("<body>");pw.println("<h1>登录界面</h1>");pw.println("<form action=logincl method = post>");pw.println("用户名:<input type=text name=username><br>");pw.println("密码:<input type=password name=passwd><br>");pw.println("<input type=submit value=loing><br>");pw.println("</form>");pw.println("</body>");pw.println("</html>");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubthis.doGet(req, resp);}}
package ustb;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.*;;public class LoginCl extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//接收用户名和密码String u = req.getParameter("username");String p = req.getParameter("passwd");//验证if(u.equals("sp") && p.equals("123")){resp.sendRedirect("welcome");}else{//跳转resp.sendRedirect("login");}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubthis.doGet(req, resp);}}

package ustb;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.*;;public class Welcome extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {PrintWriter pw = resp.getWriter();pw.print("hello");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubthis.doGet(req, resp);}}

<servlet><servlet-name>hello</servlet-name><servlet-class>ustb.Hello</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/sp</url-pattern></servlet-mapping><servlet><servlet-name>login</servlet-name><servlet-class>ustb.Login</servlet-class></servlet><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/login</url-pattern></servlet-mapping><servlet><servlet-name>logincl</servlet-name><servlet-class>ustb.LoginCl</servlet-class></servlet><servlet-mapping><servlet-name>logincl</servlet-name><url-pattern>/logincl</url-pattern></servlet-mapping><servlet><servlet-name>welcome</servlet-name><servlet-class>ustb.Welcome</servlet-class></servlet><servlet-mapping><servlet-name>welcome</servlet-name><url-pattern>/welcome</url-pattern></servlet-mapping>




0 0
原创粉丝点击