我是靠谱客的博主 喜悦康乃馨,最近开发中收集的这篇文章主要介绍商城Java项目一般几个月_javaWEB简单商城项目(五)用户列表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

接着上一篇javaWEB简单商城项目(四),这一章开始写界面方面的JSP,采用MVC方式,这一篇就是对JSTL标签的学习和MVC的学习以及搭建一个MVC的框架

一.JSTL标签

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

1.Apache Tomcat安装JSTL 库

从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)。下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

下载jakarta-taglibs-standard-1.1.1.zip 包并解压,将jakarta-taglibs-standard-1.1.1/lib/下的两个jar文件:standard.jar和jstl.jar文件拷贝到/WEB-INF/lib/下。

使用任何库,你必须在每个JSP文件中的头部包含标签。

2.使用JSTL库

首先导入标签库,核心标签库前缀是c,其次还有格式化标签库fmt,SQL标签库sql

uri="http://java.sun.com/jsp/jstl/core" %>

然后就可以像使用html标签一样使用JSTL标签了,具体标签使用可以参考网w3cschool.cc

0818b9ca8b590ca3270a3433284dd417.png

二.mvc简介

1.javaWEB的MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,对于javaWEB来说,就是JSP只处理界面,servlet只处理请求,javaBean只处理数据,就如下图所示.

0818b9ca8b590ca3270a3433284dd417.png

2.实现基于MVC方式的用户列表

javaBean在之前的文章中都封装好了,那么现在就应该先写用户的请求处理.

这里的写法类似前面的DAO层的写法,我们都知道Servlet的service()方法决定了请求会调用post还是get或者其他的方法,如果我们想让请求调用我们自己的方法,我们就在父类中覆盖service()方法.

0818b9ca8b590ca3270a3433284dd417.png

因此BaseServlet可以这样写,不过这里我们需要统一定义,如果请求user.do?method=list 那么就会调用list方法,显示用户列表

同时定义当返回值way前缀为 client:的时候则是客户端跳转,否则需要采用服务器端跳转

import com.util.DaoUtil;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

/** * Created by nl101 on 2016/2/29. */

public class BaseServlet extends HttpServlet {

/** * 重写service方法,用反射的方法决定子类要调用的函数 */

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//使用依赖注入

DaoUtil.daoInject(this);

//下面的代码决定子类调用相应的函数

String method = req.getParameter("method");//获取要调用函数的名字

try {

if (method!=null && !method.equals("")){

Method m = this.getClass().getMethod(method,HttpServletRequest.class,HttpServletResponse.class);

String way = (String) m.invoke(this,req,resp);

String skipPre = "client:";//客户端跳转标识

if (way.startsWith(skipPre)){//客户端形式跳转

resp.sendRedirect("/WEB-INF/"+way.substring(skipPre.length()));

}else {//服务器端跳转

RequestDispatcher rd = req.getRequestDispatcher("/WEB-INF/"+way);

rd.forward(req,resp);

}

}

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

}

}

调用都由父类解决了,那么我们的子类就会很简单,子类只负责取出数据,存入请求中,然后决定跳转页面

import com.dao.UserDao;

import com.model.Dao;

import com.model.Pager;

import com.model.User;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/** * Created by nl101 on 2016/2/29. */

public class UserServlet extends BaseServlet {

private UserDao userDao;

/** * 使用依赖注入实现这个注入,依赖注入请看(四),这里也正好体现了依赖注入的方便 *@param userDao */

@Dao

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

/** * 显示用户列表界面 */

public String list(HttpServletRequest req, HttpServletResponse resp){

Pager pagers = userDao.find(null,null,null);//查询出所有的用户

req.setAttribute("pagers",pagers);//把所有的用户存储到请求中

return "user/list.jsp";//返回要显示的页面

}

}

此时我们对应的JSP页面就更简单了,里面使用了一些JSTL标签,可以参考下

用户列表

用户列表

IDUSERNAMEPASSWORDNICKNAMETYPE操作
${u.id}${u.username}${u.password}${u.nickname}

管理员

用户

查看

修改

删除

最后就是改造分页框架了,之前写分页框架的时候没有用JSTL标签,现在只需要再原来的基础上稍作修改即可.关于分页框架,可以看前面的文章,这里不细说了

首页

上一页

[${pageNumber}]

${pageNumber}

下一页

尾页

效果图:

0818b9ca8b590ca3270a3433284dd417.png

MVC总结

下面写注册页面,登录页面等和用户相关的页面,那么只需要在UserServlet中增加相应的方法即可,比如我想写添加用户,那么只需要添加一个add方法,然后请求的时候method=add,这样就可以直接跳转到add页面了,相比以前的写法逻辑更加清晰,写起来更加方便

下一篇学习使用sitemesh并且封装BeanUtil

最后

以上就是喜悦康乃馨为你收集整理的商城Java项目一般几个月_javaWEB简单商城项目(五)用户列表的全部内容,希望文章能够帮你解决商城Java项目一般几个月_javaWEB简单商城项目(五)用户列表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部