新闻发布项目——首页(index.jsp)

本文介绍了一个使用Java和JSP技术实现的新闻网站布局方案及动态内容加载机制。该方案通过不同类别(如国内、国际、娱乐新闻)进行新闻分类,并实现了用户登录功能。此外,还展示了如何从数据库中读取新闻数据并显示在网页上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<%@page import="bdqn.newsManageServlet.entity.newsTb"%>
<%@page import="bdqn.newsManageServlet.Dao.Impl.newsTbDaoImpl"%>
<%@page import="bdqn.newsManageServlet.Dao.newsTbDao"%>
<%@page import="bdqn.newsManageServlet.entity.categoryTB"%>
<%@page import="bdqn.newsManageServlet.Dao.Impl.categoryTBDaoImpl"%>
<%@page import="bdqn.newsManageServlet.Dao.categoryTBDao"%>
<%@page import="bdqn.newsManageServlet.entity.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>新闻中国</title>
<link href="CSS/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<%
//登录
	User user=(User)session.getAttribute("user");
	if(user==null){
	
	%>
<form action="doLoginServlet" method="post">

  <div id="top_login">
    <label> 登录名 </label>
    <input type="text" id="uname" value="" class="login_input" name="uname"/>
    <label> 密码 </label>
    <input type="password" id="upwd" value="" class="login_input" name="upwd" />
    <input type="submit" class="login_sub" value="登录" onclick="login()"/>
    <label id="error"> </label>
    <a href="reg.jsp">注册</a>
    <img src="Images/friend_logo.gif" alt="Google" id="friend_logo" /> </div>
    </form>
 <%
 }
    else{
    out.print("欢迎"+user.getUserName());
    }
     %> 
     
     
  <div id="nav">
    <div id="logo"> <img src="Images/logo.jpg" alt="新闻中国" /> </div>
    <div id="a_b01"> <img src="Images/a_b01.gif" alt="" /> </div>
    <!--mainnav end-->
  </div>
</div>
<div id="container">
  <div class="sidebar">
    <h1> <img src="Images/title_1.gif" alt="国内新闻" /> </h1>
    <div class="side_list">
      <ul>
      <%
      //先类别名查询id
      categoryTBDao cgdao=new categoryTBDaoImpl();
      categoryTB cate=cgdao.getCateByName("国内");
      int id=cate.getCategoryID();
      //根据类别id在新闻表里面查询新闻信息
      		newsTbDao ndao=new newsTbDaoImpl();
      		List<newsTb>newlist=ndao.getnewsAllById(id);
      		for(int i=0;i<newlist.size();i++){
      		newsTb news0=newlist.get(i);
       %>
        <li> <a href='newspages/news_read.jsp?newsid=<%=news0.getNewsID() %>'><b><%=news0.getTitle()%></b></a> </li>
        <% }%>
      </ul>
    </div>
    <h1> <img src="Images/title_2.gif" alt="国际新闻" /> </h1>
    <div class="side_list">
      <ul>
      <%
      //先类别名查询id
      categoryTBDao cgdao1=new categoryTBDaoImpl();
      categoryTB cate1=cgdao1.getCateByName("国外");
      int id1=cate1.getCategoryID();
      //根据类别id在新闻表里面查询新闻信息
      		newsTbDao ndao1=new newsTbDaoImpl();
      		List<newsTb>newlist1=ndao1.getnewsAllById(id1);
      		for(int i=0;i<newlist1.size();i++){
       %>
        <li> <a href='newspages/news_read.jsp?newsid=<%=newlist1.get(i).getNewsID() %>'><b><%=newlist1.get(i).getTitle()%>  </b></a> </li>
         <% }%>
      </ul>
    </div>
    <h1> <img src="Images/title_3.gif" alt="娱乐新闻" /> </h1>
    <div class="side_list">
      <ul>
       <%
      //先类别名查询id
      categoryTBDao cgdao2=new categoryTBDaoImpl();
      categoryTB cate2=cgdao2.getCateByName("娱乐");
      int id2=cate2.getCategoryID();
      //根据类别id在新闻表里面查询新闻信息
      		newsTbDao ndao2=new newsTbDaoImpl();
      		List<newsTb>newlist2=ndao2.getnewsAllById(id2);
      		for(int i=0;i<newlist2.size();i++){
       %>
        <li> <a href='newspages/news_read.jsp?newsid=<%=newlist2.get(i).getNewsID() %>'><b> <%=newlist2.get(i).getTitle()%></b></a> </li>
        <%} %>
      </ul>
    </div>
  </div>
  <div class="main">
    <div class="class_type"> <img src="Images/class_type.gif" alt="新闻中心" /> </div>
    <div class="content">
      <ul class="class_date">
					<%
						//获取类别信息
						categoryTBDao cdao = new categoryTBDaoImpl();
						List<categoryTB> clist = new ArrayList<categoryTB>();
						clist = cdao.getCategoryTBAll();
						for (int i = 0; i < clist.size(); i++) {
					%>
					<li class='class_month'>
					<a href='#'><b><%=clist.get(i).getCategoryName()%>
						</b>
					</a>
					
					</li>
					<%
						}
					%>
					
				</ul>
      <ul class="classlist">
      <%
      newsTbDao ndao0=new newsTbDaoImpl();
      List<newsTb> nlist=ndao0.getnewsTbAll();
      for(int i=0;i<nlist.size();i++){
      		
       %>
        <li><a href='newspages/news_read.jsp?newsid=<%=nlist.get(i).getNewsID()%>'><%=nlist.get(i).getTitle() %></a>
        <span><%=nlist.get(i).getCreateDate() %></span></li>
        <%} %>
        <p align="right"> 当前页数:[1/2] <a href="#">下一页</a> <a href="#">末页</a> </p>
      </ul>
    </div>
    <div class="picnews">
      <ul>
        <li> <a href="#"><img src="Images/Picture1.jpg" width="249" alt="" /> </a><a href="#">幻想中穿越时空</a> </li>
        <li> <a href="#"><img src="Images/Picture2.jpg" width="249" alt="" /> </a><a href="#">国庆多变的发型</a> </li>
        <li> <a href="#"><img src="Images/Picture3.jpg" width="249" alt="" /> </a><a href="#">新技术照亮都市</a> </li>
        <li> <a href="#"><img src="Images/Picture4.jpg" width="249" alt="" /> </a><a href="#">群星闪耀红地毯</a> </li>
      </ul>
    </div>
  </div>
</div>
<div id="friend">
  <h1 class="friend_t"> <img src="Images/friend_ico.gif" alt="合作伙伴" /> </h1>
  <div class="friend_list">
    <ul>
      <li> <a href="#">中国政府网</a> </li>
      <li> <a href="#">中国政府网</a> </li>
      <li> <a href="#">中国政府网</a> </li>
      <li> <a href="#">中国政府网</a> </li>
      <li> <a href="#">中国政府网</a> </li>
      <li> <a href="#">中国政府网</a> </li>
      <li> <a href="#">中国政府网</a> </li>
    </ul>
  </div>
</div>
<div id="footer">
  <p class=""> 24小时客户服务热线:010-68988888  <a href="#">常见问题解答</a>  新闻热线:010-627488888 <br />
    文明办网文明上网举报电话:010-627488888  举报邮箱: <a href="#">jubao@jb-aptech.com.cn</a> </p>
  <p class="copyright"> Copyright &copy; 1999-2009 News China gov, All Right Reserver <br />
    新闻中国 版权所有 </p>
</div>
</body>
</html>

### 创建 JSP 项目的登录验证功能 为了实现一个完整的基于 JSP 的登录验证功能,可以按照以下逻辑设计 `index.jsp`、`verify.jsp` 和 `success.jsp` 文件的功能。 #### 1. **index.jsp**: 登录页面 此文件提供用户输入用户名和密码的表单,并通过 POST 请求将数据发送到 `verify.jsp` 进行验证。 ```html <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录</title> </head> <body> <h2>请登录:</h2> <form action="verify.jsp" method="post"> 用户名:<input type="text" name="username"><br><br> 密码:<input type="password" name="password"><br><br> <input type="submit" value="登录"> </form> <% String errorMessage = (String) request.getAttribute("errorMessage"); if (errorMessage != null && !"".equals(errorMessage)) { out.println("<p style='color:red'>" + errorMessage + "</p>"); } %> </body> </html> ``` 此处实现了简单的 HTML 表单提交功能,并允许服务器端传递错误消息显示给用户[^1]。 --- #### 2. **verify.jsp**: 验证页面 该文件接收来自 `index.jsp` 的请求参数并进行验证。如果验证成功,则存储用户的会话信息并将用户重定向至 `success.jsp`;否则,重新跳转回 `index.jsp` 并携带错误提示信息。 ```jsp <%@ page import="java.util.HashMap" %> <%@ page import="java.util.Map" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% Map<String, String> users = new HashMap<>(); users.put("admin", "123456"); // 假设预定义了一些用户及其密码 users.put("user", "password"); String username = request.getParameter("username"); String password = request.getParameter("password"); if (users.containsKey(username) && users.get(username).equals(password)) { session.setAttribute("user", username); response.sendRedirect("success.jsp"); } else { request.setAttribute("errorMessage", "用户名或密码错误!"); RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); } %> ``` 上述代码片段展示了如何利用 Java Scriptlet 对用户身份进行校验,并根据结果决定是否设置会话属性或将控制权转发回登录页[^2]。 --- #### 3. **success.jsp**: 成功页面 一旦用户被认证为合法用户,他们会被引导至此页面,在这里可以通过获取已存入 Session 中的数据来展示个性化欢迎语句。 ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>欢迎</title> </head> <body> <% Object user = session.getAttribute("user"); if (user == null){ response.sendRedirect("index.jsp"); } %> <h2><%=session.getAttribute("user")%>, 您好!</h2> <p>您已经成功登录。</p> <a href="logout.jsp">退出登录</a> </body> </html> ``` 在此处可以看到对于未经过适当授权就试图访问受保护资源的行为进行了处理——即强制返回到登录界面。 另外还需要注意的是关于安全性方面的一些最佳实践建议: - 使用 HTTPS 协议传输敏感资料; - 设置较短的有效期以减少被盗用风险; - 不要直接暴露数据库中的真实密码字段等内容。 --- ### 安全增强措施 虽然以上例子简单明了地说明了基本流程,但在实际应用开发过程中还需考虑更多因素比如防止SQL注入攻击等问题。因此推荐采用框架如Spring Security等工具进一步加强防护机制[^5]。 --- ### 总结 综上所述,我们构建了一个基础版的支持用户注册/注销操作的小型Web应用程序原型。它涵盖了从前台交互界面向后台业务逻辑层过渡的主要环节,包括但不限于HTML/CSS前端布局渲染技术的应用以及Java编程语言配合JSTL标签库完成动态内容生成等功能模块的设计思路探讨[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值