Servlet学习笔记

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时
	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("init it");
	}
	
	
	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}
	
	
	//负责处理业务逻辑
	//当用户每访问servlet一次都会被调用一次
	//req用于获得客户端/浏览器的信息
	//res用于向客户端/浏览器返回信息
	@Override
	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("service it");
		//从res中得到PrintWriter
		PrintWriter pw = res.getWriter();
		pw.println("hello,world");
	}
	
	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}
	
	
	//销毁servlet实例,释放内存
	//调用的情况1.reload该servlet(webapp)
	//关闭tomcat
	//关机
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("destroy");
	}
}

继承GenericServlet

只用重新写service方法就可以
package ustb;

import javax.servlet.*;
import javax.servlet.GenericServlet;

import java.io.*;

public class HelloWorld extends GenericServlet{

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		PrintWriter 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{
	
	@Override
	protected 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>");		
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.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{
	
	@Override
	protected 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");
		}
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.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{
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		PrintWriter pw = resp.getWriter();
		pw.print("hello");
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.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>




微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值