6.1编写服务层接口 services.UserinfosService
/**
* 查询数据库所有数据 并将List集合转成字符串(JSON)
*@return
*/
public inteface UserinfosService{
public String searchAll();//返回String 便于前端使用
}
6.2实现接口
impl.UsrinfosServiceImpl
导包 fastjson 1.2.75
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
导包 servlet 2.5
<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
public class UserinfosServiceImpl implements UserinfosService {
private UserinfosDAO userinfosDAO;
//构造器
public UserinfosServiceImpl(){
userinfosDAO = new UserinfosDAO();
}
@Override
public String searchAll(){
//获取数据库数据集合
List<Userinfos> allData = userinfosDAO.findAll();
//将集合转为JSON格式
String res = JSONObject.toJSONString(allData)
return res;
}
}
创建 controller控制层包
快捷键alt+insert 输入servlet 回车 初始化
包名 com.zbitedu.mymysql.controller
自动生成InitServlet类
public class InitServlet extends HttpServlet {
private UserinfosService userinfosService;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
userinfosService = new UserinfosServiceImpl();//new服务类
//把数据从数据库获取出来转为JSON字符串
String result = userinfosService.searchAll();
//将字符串发送给用户
PrintWriter out = response.getWriter();
out.println(result);
out.close();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
6.3打开web-xml 新建severlet-maping
<servlet-mapping>
<servlet-name>InitServlet</servlet-name>//java类
<url-pattern>/init</url-pattern> //网页呼叫名
</servlet-mapping>
6.4修改UserinfosDAO
//增加登录函数
public Userinfos login(String username, String pwd){
String sql="select * from userinfos where username=? and pwd=?";
List<Userinfos> uss =return change(sql,new Object[]{username,pwd})
return uss.isEmpty()?null:uss.get(0);
}
6.5修改接口UserinfosService
//增加方法 针对登录的服务
public Userinfos login(String username,String pwd);
6.6在UserinfosServiceImpl类实现方法
@override
public Userinfos userLogin(String username,String pwd){
return useerinfosDAO.login(username,pwd);
}
6.7新建登录servlet LoginServlet
//首先在web.xml中添加 类名 /login路径
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
//LoginServlet类
public class LoginServlet extends HttpServlet {
private UserinfosService userinfosService;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//接
String name = request.getParameter("name");//接收用户从前端传来的name参数
String pwd = request.getParameter("pwd");//接收用户从前端传来的pwd参数
//调
userinfosService = new UserinfosServiceImpl(); //调用类
Userinfos us = userinfosService.userLogin(name, pwd);
//回 回给用户
PrintWriter out = response.getWriter();
out.println(us!=null?"success":"fail");
out.close();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
//在网页登录测试
localhost:8080/mymysql/login?name=用户名&pwd=密码
附件1:json
{属性,值} {userid:1} 一个对象
[{属性,值},{属性,值},{属性,值}] 多个对象