1.请求转发执行页面跳转
req.getRequestDispatcher("别名").forward(req,resp);
2.跳转页面代码
<div style="margin-left:45%;margin-top: 20%">
<form action="login" method="get">
<h1 style="margin-left: 20px">登录页面</h1>
<div style="margin-left: auto">姓名: <input type="text"name="username"value=""></div>
<div>密码: <input type="password"name="password"value=""></div>
<input type="submit"name="xm"value="提交">
<a href="zc.jsp" style="margin-left: 15px">注册</a>
</form>
</div>
3.执行跳转页面代码
package com.guang.servlet;
import com.guang.bean.Goods;
import com.guang.bean.User;
import com.guang.dao.Impl.UserDaoImpl;
import com.guang.dao.UserDao;
import com.guang.util.JDBCUtil;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.swing.*;
import java.io.IOException;
import java.sql.*;
import java.util.List;
public class Login extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=UTF-8");
resp.setCharacterEncoding("utf-8");
//2。获取请求的参数
String username = req.getParameter( "username"); //根据表单ame属性获取用户输入的值
String password = req.getParameter( "password");
System.out.println(username+password);
//3.执行业务处理
UserDao userdao=new UserDaoImpl();
User login=userdao.login(username,password);
if (login!=null){
HttpSession session=req.getSession();
session.setAttribute("user",login);
req.getRequestDispatcher("Servlet").forward(req,resp);
}else {
resp.sendRedirect("error.jsp");
}
}
}
HttpSession session=req.getSession();
session.setAttribute("user",login);
传值执行跳转的值
跳转页面 resp.sendRedirect("error.jsp");
4.查询数据库商品并展示到页面(el表达式)
什么是El表达式
EL表达式是通过 $ { }从作用域对象中自动获取数据,如果是对象可以通过,访问其属性
特点 在把商品信息传输到页面中进行展示,在页面中不用在创建HttpSession获取数据,而是用${}快捷键直接获取数据
用El表达式
<table>
<tr>
<th>商品编号</th>
<th>商品名称</th>
<th>商品价格</th>
<th>商品说明</th>
</tr>
<c:forEach items="${goodsList}" var="goods">
<tr>
<td>${goods.gid}</td>
<td>${goods.gname}</td>
<td>${goods.price}</td>
<td>${goods.mark}</td>
</tr>
</c:forEach>
增强for循环
<%
//获取session对象
//从session对象中获得集合
List<Goods> goodsList = (List<Goods>) session1.getAttribute("goodsList");//遍历集合
for (Goods goods : goodsList) {
%>
<tr>
<td><%=goods.getGid()%></td>
<td><%=goods.getGname()%></td>
<td><%=goods.getPrice()%></td>
<td><%=goods.getMark()%></td>
</tr>
<%
}
%>
5.执行查询数据库代码
package com.guang.servlet;
import com.guang.bean.Goods;
import com.guang.dao.Impl.UserDaoImpl;
import com.guang.dao.UserDao;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;
@WebServlet("/Servlet")
public class GoodSelect extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
UserDao userDao=new UserDaoImpl();
List<Goods> goodsList= ((UserDaoImpl) userDao).GoodSelect();
System.out.println(goodsList);
HttpSession session=req.getSession();
session.setAttribute("goodsList",goodsList);
resp.sendRedirect("zhuye.jsp");
}
}