JavaWeb基础(学习笔记)三

 使用JDBC操作数据库

 JDBC

 Java数据库连接技术(Java DataBase Connectivity),能实现Java程序对各种数据库的访问
 由一组使用Java语言编写的类和接口(JDBC API)组成,它们位于java.sql以及javax.sql中

 JDBC访问数据库步骤

在这里插入图片描述
 上述步骤中Statement方法用于发送简单的SQL语句,而想要发送带有一个或多个输入参数的SQL语句,则需要使用PreparedStatement方法。

Statement与PreparedStatement区别
  Statement由方法createStatement()创建,该对象用于发送简单的SQL语句
  PreparedStatement由方法prepareStatement()创建,该对象用于发送带有一个或者多个输入参数的SQL语句
在这里插入图片描述
   SQL语句使用“?”作为数据占位符
   使用setXxx()方法设置数据

  PreparedStatement—预编译
   效率、性能、开销
   安全性
   代码可读性

注意:
  1、将相似功能的代码抽取封装成方法,减少代码冗余
  2、因为不同的数据库会有不同的实现,对数据库的操作一般抽取成接口,在以后的开发中可以降低耦合

 Servlet

 Servlet概述

 Servlet 接受请求,调用JavaBean去处理请求

Servlet做了什么?
 本身不做任何业务处理
 只是接收请求并决定调用哪个JavaBean去处理请求
 确定用哪个页面来显示处理返回的数据
Servlet是什么?
 Server+Applet,是一种服务器端的Java应用程序
 只有当一个服务器端的程序使用了Servlet API的时候,这个服务端的程序才能称之为Servlet

在这里插入图片描述

问题:JSP与Servlet之间有什么关系?
在这里插入图片描述

 Servlet配置

配置Servlet

配置 < servlet > 元素
在这里插入图片描述
配置元素
在这里插入图片描述

 Servlet配置

Servlet的作用
  负责接收请求,调用相应Service方法,决定如何响应,本身不做业务逻辑
创建和部署Servlet(重点)
  创建:继承自HttpServlet
  部署:修改web.xml,添加< servlet >、< servlet-mapping >

 具体代码实现:

//web.xml文件中具体代码
  <servlet>
  	<servlet-name>loginServlet</servlet-name>  //起个名字
  	<servlet-class>com.ishopn.servlet.LoginServlet</servlet-class>   //地址
  </servlet>
  <servlet-mapping>
  	<servlet-name>loginServlet</servlet-name>
  	<url-pattern>/loginServlet</url-pattern>    //相对路径
  </servlet-mapping>

//Servlet文件具体代码
package com.java.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * 如果要让一个普通的类 变成servlet 
 * 就让他继承javax.servlet.http.HttpServlet
 * @author naixi
 *
 */
public class LoginServlet extends HttpServlet {
	//com.java.servlet.LoginServlet
	/**
	 * 这个方法 就是专门用来处理 get方式的请求 所有的get请求都会被传递到这个方法内
	 * 你所需要的request和response作为参数传递进来了 你只要用就可以了
	 */
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		resp.setCharacterEncoding("utf-8");
		// 从表单 获取数据 
		String userName=req.getParameter("userName");
		String userPassword=req.getParameter("userPassword");
		if("jack".equals(userName) && "333".equals(userPassword)) {
			//cookie
			Cookie cookie=new Cookie("userName",userName);
			cookie.setMaxAge(60*5);
			resp.addCookie(cookie);
			//session 在servlet中 是问req拿的
			HttpSession session=req.getSession();
			session.setAttribute("userName", userName);
			resp.sendRedirect("/web05/welcome.jsp");
		}else {
			resp.sendRedirect("/web05");
		}
		// 将数据传递给下一个页面
		//  cookie session	
	}
	/**
	 * 专门用来处理post请求
	 */
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req,resp);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值