web项目总结-----1

1. <a href='<c:url value="/list"></c:url>'>欢迎来到首页</a>

跳转到list Servlet ,使用的绝对路径

2. UserController 里面:
@RequestMapping("/list")  // 使用的绝对路径 
    public String listUsers(Model model) {

        Collection<User> list = service.listUser();

        model.addAttribute("list", list);  // 请求转发配置参数

        return "list";   // 跳转到 list.jsp 页面
    }
3. var 跟 varStatus 的区别:

var指向当前值
varStatus可以获得与当前索引相关的一些信息:
如varStatus=’status’ 则可以用${status.index}获得当前元素在集合中的索引

变量状态参数,该属性有5个常用值:
count 表示当前遍历集合的元素个数
index 表示当前遍历到集合的第几个元素
current 表示当前的集合元素
first 表示集合的第一个元素
last 表示集合的最后一个元素

`   <c:forEach items="${list}" var="user" varStatus="index">   
    </c:forEach>`
4. 关于 a 标签跳转:

是一个相对路径,相对于 WebContent ,如果你的 jsp 是直接写在WebContent 包下,可以直接写 update.jsp;如果你是写在 WebContent 文件夹下的 view 包下,则需要在前面加上 ” view/ ” 路径

img 标签同 a 标签,也是相对于 WebContent 文件夹

<a href='<c:url value="view/update.jsp?username=${user.username }&id=${user.id }"></c:url>'>修改头像</a>

<img class="image" alt="头像" src="view/upload/${user.image }">
5. hidden 关键字
<input type="hidden" name="id" value="${param.id}">   // input 标签传递隐形参数
6. UserMapping 上面写 SQL 语句:

parameterTyper 参数类型
resultType 返回值类型 , 如果返回值是多个类型,封装成对象 使用resultMap

    <update id="update" parameterType="user">
        update user
        set
        image =
        #{image}
        where id = #{id}
    </update>
    <delete id="deleteByPrimaryKey">  // delete from user where id = ? or id= ? or id=?;
        delete from user
        <where>
            <foreach collection="array" item="item" separator="," open="id in ("
                close=")">
                #{item}
            </foreach>
        </where>
    </delete>
7. jsp 中传递参数到 servlet 中,参数名要与 Controller 中的参数名对应。
8.
请求转发:
// return "redirect:/view/welcome.jsp";     重定向
        // return "forward:register";       请求转发,携带参数
    @RequestMapping("/list")
    public String listUsers(Model model) {

        Collection<User> list = service.listUser();

        model.addAttribute("list", list);    // 携带的参数

        return "list";       // 请求转发
    }
重定向:到 list.jsp
    @RequestMapping("/delete")
    public String delete(Long ...ids) {

        service.deleteByPrimaryKey(ids);
        return "redirect:/list";
    }
更新图片 :
    @RequestMapping("/update")
    public String update(Long id,MultipartFile image,HttpServletRequest request) {

        // 上传的图片不会使用原始的名字,需要重新命名一个唯一的名字
        // 防止多个用户上传名字相同内容不同的图片,导致覆盖,只保存了一张的情况
        // 名字: 时间戳,内容dm5 后的字符串,UUID 

        String imageName = String.valueOf(new Date().getTime());  // 时间戳作为文件名
        String path = request.getServletContext().getRealPath("/")+ "view/upload/" + imageName;   //  获取当前服务器所在的 tomcat 上的 绝对路径 ,拼接成 要获取图片的完整路径 

        File file = new File(path);    // 在此路径上 new 出一个文件,空的

        System.out.println("id = "+ id);

        try {

            image.transferTo(file);   // 把我们上传到服务器的文件 transferTo new出来的那个文件

            User user = new User();
            user.setId(id);
            user.setImage(imageName);
            service.update(user);

        } catch (IllegalStateException | IOException e) {
            e.printStackTrace();
        }
        return "redirect:/list";
    }

11 . 注解的使用:

1.
@Repository
public interface UserDao  // dao接口用 Repository (仓库)
2.
@Service            // serviceImplService
public class UserServiceImpl implements UserService{
3.
@Autowired 
private UserDao dao;  // 获取 UserDao dao = new UserDaoImpl();   dao 的实现类
4. 
@Controller
public class UserController{}  // 注册 UserController 类用 Controller
5.
@RequestMapping("/list")
public String listUsers(Model model) {}  // Controller 中的方法用 RequestMapping 注解,相当于一个ListServlet  用来处理jsp中传递的数据
6.JUnit 上面的注解
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml","classpath:spring/spring-service.xml"})

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值