读书人

怎么让servlet输出内容到指定页

发布时间: 2013-04-07 12:50:11 作者: rapoo

如何让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);

读书人网 >Java Web开发

热点推荐