package com.dao.imp;
import com.dao.UserLoginDao;
import com.tool.myutil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserLoginDaoImp implements UserLoginDao {
Connection con = null;
PreparedStatement sta = null;
ResultSet ret = null;
//查询用户名密码是否存在与数据库中
@Override
public int login(String n, String p) {
String sql = "";
int n1 = 0;
try {
con = myutil.utilDbc();
sql = "select count(id) from t_user where username= ? and password = ?";
sta = con.prepareStatement(sql);
sta.setString(1,n);
sta.setString(2,p);
ret = sta.executeQuery();
while (ret.next()){
n1 = ret.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
myutil.myclose(con,sta,ret);
}
return n1;
}
}
package com.service.imp;
import com.dao.UserLoginDao;
import com.service.UserLoginService;
public class UserLoginSreviceImp implements UserLoginService {
private UserLoginDao userLoginDao;
public UserLoginSreviceImp(UserLoginDao userLoginDao) {
this.userLoginDao = userLoginDao;
}
//登录业务
@Override
public int loginService(String n,String p) {
return userLoginDao.login(n, p);
}
}
package com.sevlet;
import com.dao.imp.UserLoginDaoImp;
import com.service.UserLoginService;
import com.service.imp.UserLoginSreviceImp;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/login")
public class LoginSevlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
UserLoginService u = new UserLoginSreviceImp(new UserLoginDaoImp());
int i = u.loginService("zhangsan", "123");
System.out.println(i);
if(i == 1){
//登录成功
request.setAttribute("msg","登录成功");
}else{
//登录失败
request.setAttribute("msg","登录失败");
}
//转发到show.js
//获取请求转发器对象
RequestDispatcher a = request.getRequestDispatcher("show.jsp");
//forward(方法)调用转发
a.forward(request,response);
}
}
import com.dao.imp.UserLoginDaoImp;
import com.service.UserLoginService;
import com.service.imp.UserLoginSreviceImp;
import org.junit.Test;
public class ServiceTest {
@Test
public void test01(){
UserLoginService u = new UserLoginSreviceImp(new UserLoginDaoImp());
int i= u.loginService("zhangsan", "123");
System.out.println(i);
}
}
你的 mysql驱动依赖,没有打包到 你web项目中吧,检查一下
测试类是new对象,当然有结果了,servlet debug查看get请求是否进入了方法,
其实操作很简单,编写一个类去实现servlet接口:
public class FirstServlet implements Servlet{
public FirstServlet() {
System.out.println("我是构造器");
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("我是初始化方法");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("service方式执行了");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("我被摧毁了~");
}
}
然后在web.xml配置文件中配置servlet程序的访问地址:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.cabbage.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
需要注意的是:
标签 | 作用 |
---|---|
<servlet> | 给Tomcat配置servlet程序 |
<servlet-name> | 给servlet程序起一个别名 |
<servlet-class> | servlet程序的全类名 |
<servlet-mapping> | 给servlet程序配置访问地址 |
<servlet-name> | 是告诉服务器,当前配置的地址给哪个servlet程序使用 |
<url-pattern> | 配置访问地址 |
/ | 斜杠在服务器解析的时候,表示地址为http://ip:port/工程路径 |
/hello | 表示地址为http://ip:port/工程路径/hello |
图实在是太难画了,就直接拿了过来。从图中可知,客户端通过ip地址定位服务器,然后通过端口号定位Tomcat,在通过工程路径确定访问哪一个工程,最后通过资源路径访问web.xml配置文件中的访问路径,根据name找到对应的servlet类,最后执行该内中的功能代码,大致就是这么一个过程。