如何让servlet输出内容到指定页
我的项有一个servlet显示数据库表信息的,不过是用servlet输出的,想把它的输出内容输出到指定页面中,怎么办??
比如我有一个showTable.servlet来连接数据库并找到了数据库内容并作出了输出,就是把下面的doget索要输出的内容输出到指定页面中??但是现在想把这个输出内容输出到页面a.jsp里面。该怎么做呀
附上代码
public void doGet(HttpServletRequest req, HttpServletResponse res){
PreparedStatement ps = null;
ResultSet rs = null;
try{
res.setContentType("text/html;charset=UTF-8");
PrintWriter pw = res.getWriter();
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/flightTicket","root","flight");
//分页
int pagerow = 5;
int nowpage = 1;
int pagelist = 0;
int pagecount = 0;
ps = conn.prepareStatement("select count(*) from passengerMessage");
rs = ps.executeQuery();
if(rs.next()){
pagelist = rs.getInt(1);
if(pagelist%pagerow == 0){
pagecount = pagelist/pagerow;
}else{
pagecount = pagelist/pagerow+1;
}
}
if(req.getParameter("spagecount") != null){
nowpage = Integer.parseInt(req.getParameter("spagecount"));
//System.out.println(req.getParameter("spagecount"));
}
//显示列表
Statement st = conn.createStatement();
rs = st.executeQuery("select * from passengerMessage limit "+(nowpage-1)*pagerow+","+pagerow);
System.out.println((nowpage-1)*pagerow+"(nowpage-1)*pagerow+"+pagerow+"pagerow");
pw.println("<table>");
pw.println("<tr><td>姓名</td><td>身份证</td><td>电话</td><td>删除</td></tr>");
while(rs.next()){
pw.println("<tr>");
pw.println("<td>"+rs.getString(1)+"</td>");
pw.println("<td>"+rs.getString(2)+"</td>");
pw.println("<td>"+rs.getString(3)+"</td>");
pw.println("<td><a href=Deletepassenger?IdCard="+rs.getString(2)+">删除</a></td>");
pw.println("</tr>");
}
pw.println("</table>");
//分页开始
//显示上一页
if(nowpage>1)
pw.println("<a href=SelectPassenger?spagecount="+(nowpage-1)+">上一页</a>");
for(int i =0; i<=pagecount; i++){
pw.println("<a href=SelectPassenger?spagecount="+i+">"+i+"</a>");
// System.out.println(j+"jbbbbbb");
// System.out.println(i+"i33333");
}
if(pagecount-nowpage > 5){
pw.println("<a href=SelectPassenger?spagecount="+pagecount+">..."+pagecount+"...</a>");
//System.out.println(pagecount+">.pagecount.."+pagecount);
}
//显示下一页
if(nowpage<pagecount)
pw.println("<a href=SelectPassenger?spagecount="+(nowpage+1)+">下一页</a>");
pw.println("</div>");
}catch(Exception e){
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req,res);
} servlet 数据库 输出 jsp
[解决办法]
在servlet中将查询到的数据保存为session,然后再页面中显示即可;
servlet代码:
String userName = request.getParameter("username");
String passWord = request.getParameter("password");
if(userName != null && passWord != null){
HttpSession session = request.getSession();
session.setAttribute("uname", userName);
session.setAttribute("pword", passWord);
}
response.sendRedirect("index.jsp");
index.jsp显示页面:
<center><b>
<%
String uname = "";
String pword = "";
if(session != null){
uname = (String) session.getAttribute("uname");
pword = (String) session.getAttribute("pword");
if(uname != null && !uname.equals("") && pword != null && !pword.equals("")){
out.println("Input UserName: <font color='red'><b>"+ uname +"</b></font><br>");
out.println("Input PassWord: <font color='red'><b>"+ pword +"</b></font>");
}
}
%>
</b></center>
[解决办法]
同样的 如果查询出来的是一个list对象,也是一样可以session保存,然后再jsp页面中用标签库遍历显示出来的……祝LZ好运……
[解决办法]
用了servlet就别用jsp 两个只选一个,不然代码就比较乱。
最好不要把集合这些东西随便放到session里 放进去了就要清理,因为都会占用服务器开销。
你可以试着在servlet 转跳jsp,把你要传的东西放到request里
servlet使用RequestDispatcher到jsp页面
String url="/EShop.jsp";
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(url);
rd.forward(req, res);
servlet重定向jsp,并将数据发送到别一个JSP中:
request.setAttubute("messages",aaa);
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/xxx.jsp");
requestDispatcher.forward(request,response);