Servlet的简单应用

什么是servlet?
Servlet (server applet)服务器小程序,是服务器的一个组件。是前后台交互必不可少的一个技术。
servlet是一个接口。
servlet和tomcat的关系?
servlet是tomcat实现的一个程序,用于前后台交互
dynamic web module version 2.5与3.0的主要区别

入门案例

创建一个class继承HttpServlet,HttpServlet 继承 GenericServlet 实现了 Servlet接口
重写doGet和doPost方法

public class HelloServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("get方法执行了");
		super.doGet(req, resp);
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("post方法执行了");
		super.doPost(req, resp);
	}
}

配置web.xml文件(新建servlet的话就不用了自己配置web.xml,案例的servlet是我们自己继承而来的)

<servlet>
  	<servlet-name>HelloServlet</servlet-name>
  	<servlet-class>com.yang.servlet.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>HelloServlet</servlet-name>
  	<url-pattern>/hello</url-pattern>
  </servlet-mapping>

创建一个简单的表单html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/day11/hello" method="post">
		<input type="submit" value="提交" />
	</form>
</body>
</html>

右键run on server
在这里插入图片描述
点击提交
在这里插入图片描述
这里测试的是post方法,如果想要测试get方法的话,修改表单的提交方式即可
在这里插入图片描述
访问servlet的流程
在这里插入图片描述

升级案例

用户登录
先上表单吧

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/day11/login" method="get">
		用户名:<input type="text" name="username"><br/>
		密码:<input type="password" name="password"><br/>
		<input type="submit" value="提交" />
	</form>
</body>
</html>

使用c3p0数据库连接池连接数据库

public class LoginServlet extends HttpServlet {
       
    public LoginServlet() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String sql="select * from user where username=? and password=?";
		Object[] params = {username,password};
		QueryRunner qr = new QueryRunner(C3p0Utils.getDataSource());
		User user = null;
		try {
			user = qr.query(sql, new BeanHandler<User>(User.class),params);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		if (user!=null) {
			System.out.println("登录成功!");
		}else {
			System.out.println("用户名或密码错误!");
		}
		
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

web.xml部分

<servlet>
    <description></description>
    <display-name>LoginServlet</display-name>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.yang.servlet.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>

注意url-pattern标签里的/login是from表单里的路径,如果用新建servlet,默认生成的servlet的url-pattern可能并不是你想要的访问路径,这时候发布项目点击会提交会出现没有反应的情况,属于访问路径有问题,from表单里的路径一定要和url-pattern里的相对应
servlet的作用
1、接收客户端发送过来的请求
2、调用业务层进行业务处理
3、将结果响应给浏览器
创建一个servlet的三个步骤:继承、重写、在web.xml中配置servlet
浏览器和服务器是如何通信的?
浏览器向服务器发送请求
服务器对请求进行处理,看看能否找到对应的资源,找到或者没找到
服务器将结果发送给浏览器
浏览器对结果进行解析
什么是静态资源?什么是动态资源?
静态资源是指客户端请求服务器,服务器从内存取到的相应资源(而不用请求数据库)如html、css、js、图片视频等
动态资源是指客户端请求服务器,服务器把请求交给web容器,web容器连接数据库,数据库处理完数据后交给web服务器。服务器返回给客户端解析渲染(也就是说动态资源是需要服务器连接数据库拿到的资源)
BS架构和CS架构的区别

BS架构不用安装软件,节约空间,减少使用成本,但是效果和安全性不如CS架构
CS架构需要安装客户端,服务器负荷较轻但维护麻烦,安全性高,效果好
WEB-INF下的资源不能通过浏览器直接访问,因为WEB-INF下资源受保护
编写的项目代码发布到服务器后.java代码还存不存在?
不存在,发布到tomcat服务器后,在webapps文件夹下是发布的多个项目,每个项目都有一个以项目名命名的文件夹,文件夹内在这里插入图片描述
WEB-INF下内容
在这里插入图片描述
如何获取页面提交过来的参数?
request.getParameter(“username”);
什么是URL?
URL是统一资源定位符的简称,是对互联网上资源位置的一种表示,互联网上的每个文件都有一个唯一的URL。
协议://域名:端口号/资源位置?参数=值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值