添加书籍信息并显示:

在books界面显示要添加的书籍信息

<form action="BookServlet" method="post">
书名:<input type="text" name="bname"><br><br>
作者:<input type="text" name="bauthor"><br><br>
定价:<input type="text" name="bprice"><br><br>
     <input type="submit" value="添加">

</form>

提交到bookservlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub  
        request.setCharacterEncoding("utf-8");  
    //  List<BookBean> all=new ArrayList<BookBean>();
        String bname=request.getParameter("bname");
        String bauthor=request.getParameter("bauthor");
        Float
        //request.getParameter()获取到的是String类型要强制转化为Float bprice=Float.parseFloat(request.getParameter("bprice"));
        BookBean b=null;
        b=new BookBean();
        b.setBname(bname);
        b.setBauthor(bauthor);
        b.setBprice(bprice);
        //从session中获取保存的数据信息,假设为空,新建集合,把数据存入集合;假设不为空,直接获取集合,并将书籍添加
        List<BookBean> bookList;
        if(request.getSession().getAttribute("blist")==null){
            bookList=new ArrayList<BookBean>();
            bookList.add(b);
        }else{
            bookList=(ArrayList<BookBean>)request.getSession().getAttribute("blist");
            bookList.add(b);
        }
        //将集合放入session
        request.getSession().setAttribute("blist", bookList);
        request.getRequestDispatcher("showInf.jsp").forward(request, response);

    }

在这里也可以不用session直接将List all=new ArrayList();放在doPost()方法外,这样就不会每次都新创建一个集合。
将全部添加的书籍显示在页面上showIn.jsp

<body>
    <center><h2>全部书籍列表</h2>
    <table border="1" width="70%">
    <tr>
        <td>书名</td>
        <td>作者</td>
        <td>定价</td>
    </tr>
    <%
        Iterator<BookBean> iter=((ArrayList)session.getAttribute("blist")).iterator();
        while(iter.hasNext()){
        <!--只需在当前页面显示即可-->
            pageContext.setAttribute("books", iter.next());
            //request.setAttribute("books",iter.next());
            %>
            <tr>
                <td>${books.bname}</td>
                <td>${books.bauthor }</td>
                <td>${books.bprice }</td>
            </tr>
        <%} %>
    </table>
    <a href="books.jsp">继续添加</a>
    </center>
</body>

刚新学了过滤器,所以直接加入一个登陆的安全过滤器,即若未经登陆不能进入其他页面,首先需要有一个登陆页面login,然后跳到loginServlet 中

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //判断用户名和密码是否正确,若正确则跳转至添加书籍界面,若不正确则提供错误信息跳回登录页面
String username=request.getParameter("username");
String password=request.getParameter("password");
if(username.equals("aa")&&password.equals("123")){                 request.getSession().setAttribute("user",username);          request.getRequestDispatcher("books.jsp").forward(request, response);           
        }else{      
request.setAttribute("error", "用户名或密码错误");                   request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }

这是过滤器loginFilter,同时需要配置web.xml

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    // TODO Auto-generated method stub
    //判断访问路径是否有loginServlet,如果有则放行,否则检查用户是否登录
        if(req.getRequestURI().indexOf("/loginServlet")>-1){
            chain.doFilter(request, response);  
        }else{
            if(req.getSession().getAttribute("user")!=null){
                chain.doFilter(request, response);      
            }else{
                request.getRequestDispatcher("login.jsp").forward(request, response);
            }
        }       
    }       

这里是配置web.xml文件的截图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值