基于jsp的新闻发布系统

新闻发布系统
下面就让我们来说一说基于jsp的新闻发布系统,其中使用的技术有JavaBean、fillter、数据库等,能够实现新闻的发布功能,在发布之后能够进行对每一条新闻的删除、修改、或者继续增加新的文章,最后还能够进行查询功能,其中引用了百度编辑器,能够进行图文并茂的编辑,极大地方便用户的使用。
:完整项目 下载地址: 新闻发布系统(下面的部分代码和下载地址的有所区别,但是只是优化而已,出问题可随时问我)
一、效果演示
首先让我们来看一看实现的效果:
下面是登陆的首界面:
图1 首界面
管理员登录页面:
图2 管理员登录界面
下面是管理员登陆之后的界面,可以进行添加新闻、删除新闻、查询新闻:
图3 管理员管理界面
下面是添加新闻界面,能够进行新闻的添加:
图4 添加新闻界面
下面是所添加的新闻:
图5 添加后的新闻
下面是修改新闻界面:
图6 修改新闻界面
下面是修改后的界面
图7 修改后的界面
下面是删除新闻后的界面:
图8 删除新闻后的界面
对于新闻的查找,与其他类似,在这里我们使用的是利用新闻编号进行查询所需的信息,然后在新的页面上进行显示
二、具体实现过程
1、环境:编程环境为NetBeans8.0和Oracle数据库
2、数据库后台的设计
在新闻管理系统中,我们需要数据库后台管理,其具体步骤如下所示:
根据所需的业务进行建表, 可参见如下所示: 建立数据库
3、编写步骤:
(1)首先建立以个项目,在此命名为Demo_08_NewsRealese,项目布局结构如下图所示,根据如下布局对项目进行布局设计,方便后面的编程,项目中web-inf为项目配置文件夹,images文件夹用于储存项目中使用的图片文件,ueditor为百度富文本编辑器文件夹,源包文件夹为Java类文件夹:
图9 项目布局结构图
接着,我们进行创建数据库连接层,即DAO和VO,分别存于包com.lut.beans和dao,类命名分别命名为NewsRealese、NewsRealeseDao,对于类NewsRealese而言,主要是实现字符串的包装,其内容与数据库里边的内容一一对应,其代码分别如下所示:
package com.lut.beans;
public class NewsRealese {
private String newsId;
private String classId;
private String kindId;
private String myOther;
private String headTitle;
private String content;
private String connectRealtive;
private String author;
private String editor;
private String newsFrom;
private String top;
private String newsTime;
private String hits;
private String state;
private String tag;public String getNewsId() {return newsId;}public void setNewsId(String newsId) {this.newsId = newsId;}public String getClassId() {return classId;}public void setClassId(String classId) {this.classId = classId;}public String getKindId() {return kindId;}public void setKindId(String kindId) {this.kindId = kindId;}public String getMyOther() {return myOther;}public void setMyOther(String myOther) {this.myOther = myOther;}public String getHeadTitle() {return headTitle;}public void setHeadTitle(String headTitle) {this.headTitle = headTitle;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getConnectRealtive() {return connectRealtive;}public void setConnectRealtive(String connectRealtive) {this.connectRealtive = connectRealtive;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getEditor() {return editor;}public void setEditor(String editor) {this.editor = editor;}public String getNewsFrom() {return newsFrom;}public void setNewsFrom(String newsFrom) {this.newsFrom = newsFrom;}public String getTop() {return top;}public void setTop(String top) {this.top = top;}public String getNewsTime() {return newsTime;}public void setNewsTime(String newsTime) {this.newsTime = newsTime;}public String getHits() {return hits;}public void setHits(String hits) {this.hits = hits;}public String getState() {return state;}public void setState(String state) {this.state = state;}public String getTag() {return tag;}public void setTag(String tag) {this.tag = tag;}    
}
下面是类DAO类,命名为NewsRealeseDao.java,对于DAO类,主要用于实现数据库的连接问题,进行数据库的链接,在连接过程中需要用到各种有关数据库的技术,在这里我们使用的是Oracle数据库,其获取链接的方式为如下代码,其中第一行为注册驱动,第二行为数据库地址(orcl为Oracle数据库中的SID,在安装Oracle数据库时需要记住),第三行为具体的连接,及使用URL找到数据库位置,然后使用密码wjk139登录到Scott账户
            //1、注册驱动 Class.forName("oracle.jdbc.driver.OracleDriver");//2、url地址String url = "jdbc:oracle:thin:@localhost:1521:orcl";//3、获取连接conn = DriverManager.getConnection(url, "scott", "wjk139");
其他的操作分别为增删改查的具体代码,分别对应Servlet中或jsp中需要实例化的代码,下面就是具体的DAO类代码:
package dao;
import com.lut.beans.NewsRealese;
import static java.lang.System.out;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class NewsRealeseDao {public ArrayList queryAllNews() throws Exception {Connection conn = null;ArrayList newsRealese = new ArrayList();try {//获取连接  Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";conn = DriverManager.getConnection(url, "scott", "wjk139");//运行SQL语句 String sql = "select * from newmessage";//获取Statement stat = conn.createStatement();ResultSet rs = stat.executeQuery(sql);while (rs.next()) {   //实例化VONewsRealese news = new NewsRealese();news.setNewsId(rs.getString("newsid"));news.setClassId(rs.getString("CLASSID"));news.setKindId(rs.getString("KINDID"));news.setMyOther(rs.getString("MYOTHER"));news.setHeadTitle(rs.getString("HEADTITLE"));news.setContent(rs.getString("CONTENT"));news.setConnectRealtive(rs.getString("CONNECTREALTIVE"));news.setAuthor(rs.getString("AUTHOR"));news.setEditor(rs.getString("EDITOR"));news.setNewsFrom(rs.getString("NEWSFROM"));news.setTop(rs.getString("TOP"));news.setNewsTime(rs.getString("NEWSTIME"));news.setHits(rs.getString("HITS"));news.setState(rs.getString("STATE"));news.setTag(rs.getString("TAG"));newsRealese.add(news);}rs.close();stat.close();} catch (Exception e1) {e1.printStackTrace();} finally {try {//关闭连接if (conn != null) {conn.close();conn = null;}} catch (Exception ex) {}return newsRealese;}}//查询一个消息public ArrayList queryOneNews(int newsid) throws Exception {Connection conn = null;ArrayList newsRealese = new ArrayList();int temp_id = newsid;try {//获取连接  Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";conn = DriverManager.getConnection(url, "scott", "wjk139");//运行SQL语句 Statement stat = conn.createStatement();String sql = "select * from newmessage where newsid=?";//获取newsid,使用?代替字符串,是一种预编译的提交方式PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, Integer.valueOf(newsid));ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeQuery是无参的。              while (rs.next()) {   //实例化VONewsRealese news = new NewsRealese();news.setNewsId(rs.getString("newsid"));news.setClassId(rs.getString("CLASSID"));news.setKindId(rs.getString("KINDID"));news.setMyOther(rs.getString("MYOTHER"));news.setHeadTitle(rs.getString("HEADTITLE"));news.setContent(rs.getString("CONTENT"));news.setConnectRealtive(rs.getString("CONNECTREALTIVE"));news.setAuthor(rs.getString("AUTHOR"));news.setEditor(rs.getString("EDITOR"));news.setNewsFrom(rs.getString("NEWSFROM"));news.setTop(rs.getString("TOP"));news.setNewsTime(rs.getString("NEWSTIME"));news.setHits(rs.getString("HITS"));news.setState(rs.getString("STATE"));news.setTag(rs.getString("TAG"));newsRealese.add(news);}rs.close();stat.close();} catch (Exception e1) {e1.printStackTrace();} finally {try {//关闭连接if (conn != null) {conn.close();conn = null;}} catch (Exception ex) {}return newsRealese;}}//删除数据public String deleteOneNews(int newsid) throws Exception {Connection conn = null;ArrayList newsRealese = new ArrayList();int temp_id = newsid;try {//获取连接  Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";conn = DriverManager.getConnection(url, "scott", "wjk139");//运行SQL语句 Statement stat = conn.createStatement();String sql = "DELETE FROM  newmessage WHERE newsid =?";//获取newsid,使用?代替字符串,是一种预编译的提交方式PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, Integer.valueOf(newsid));ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeQuery是无参的。              rs.close();stat.close();} catch (Exception e1) {e1.printStackTrace();} finally {try {//关闭连接if (conn != null) {conn.close();conn = null;}} catch (Exception ex) {}return newsRealese.toString();}}//插入数据public String insertOneNews(ArrayList addnews_list) throws Exception {Connection conn = null;/* for(int i=0,j=1;i<addnews_list.size();i++,j++){System.out.println("j:"+j+"值:"+addnews_list.get(i).toString());}*/try {//获取连接  Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";conn = DriverManager.getConnection(url, "scott", "wjk139");//运行SQL语句 Statement stat = conn.createStatement();String sql = "insert into newmessage(newsId,classId,kindId,myOther,headTitle,content,connectRealtive,author,editor,newsFrom"+ ",top,newsTime,hits,state,tag) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, Integer.valueOf(addnews_list.get(0).toString()));ps.setInt(2, Integer.valueOf(addnews_list.get(1).toString()));ps.setInt(3, Integer.valueOf(addnews_list.get(2).toString()));ps.setInt(4, Integer.valueOf(addnews_list.get(3).toString()));ps.setString(5, addnews_list.get(4).toString());ps.setString(6, addnews_list.get(5).toString());ps.setString(7, addnews_list.get(6).toString());ps.setString(8, addnews_list.get(7).toString());ps.setString(9, addnews_list.get(8).toString());ps.setString(10, addnews_list.get(9).toString());ps.setInt(11, Integer.valueOf(addnews_list.get(10).toString()));ps.setString(12, addnews_list.get(11).toString());ps.setString(13, addnews_list.get(12).toString());ps.setString(14, addnews_list.get(13).toString());ps.setString(15, addnews_list.get(14).toString());for (int i = 0, j = 1; i < addnews_list.size(); i++, j++) {System.out.println("j:" + j + "值:" + addnews_list.get(i).toString());}int i = ps.executeUpdate();conn.commit();System.out.println("成功添加" + i + "行");stat.close();conn.close();return i + "conn:" + conn;} catch (Exception e1) {e1.printStackTrace();} finally {try {//关闭连接if (conn != null) {conn.close();conn = null;}} catch (Exception ex) {}}return conn.toString();}//更新数据public String updateOneNews(ArrayList addnews_list) throws Exception {Connection conn = null;/* for(int i=0,j=1;i<addnews_list.size();i++,j++){System.out.println("j:"+j+"值:"+addnews_list.get(i).toString());}*/try {//获取连接  Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";conn = DriverManager.getConnection(url, "scott", "wjk139");//不安全//运行SQL语句 Statement stat = conn.createStatement();String sql = "UPDATE newmessage set classId=?,kindId=?,myOther=?,headTitle=?,content=?,"+ "connectRealtive=?,author=?,editor=?,newsFrom=?,top=?,newsTime=?,hits=?,state=?,tag=? where newsid=?";  PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, Integer.valueOf(addnews_list.get(1).toString()));ps.setInt(2, Integer.valueOf(addnews_list.get(2).toString()));ps.setInt(3, Integer.valueOf(addnews_list.get(3).toString()));ps.setString(4, addnews_list.get(4).toString());ps.setString(5, addnews_list.get(5).toString());ps.setString(6, addnews_list.get(6).toString());ps.setString(7, addnews_list.get(7).toString());ps.setString(8, addnews_list.get(8).toString());ps.setString(9, addnews_list.get(9).toString());ps.setInt(10, Integer.valueOf(addnews_list.get(10).toString()));ps.setString(11, addnews_list.get(11).toString());ps.setString(12, addnews_list.get(12).toString());ps.setString(13, addnews_list.get(13).toString());ps.setString(14, addnews_list.get(14).toString());ps.setInt(15, Integer.valueOf(addnews_list.get(0).toString()));for (int i = 0, j = 1; i < addnews_list.size(); i++, j++) {System.out.println("j:" + j + "值:" + addnews_list.get(i).toString());}int i = ps.executeUpdate();conn.commit();System.out.println("成功更新" + i + "行");stat.close();conn.close();return i + "conn:" + conn;} catch (Exception e1) {e1.printStackTrace();} finally {try {//关闭连接if (conn != null) {conn.close();conn = null;}} catch (Exception ex) {}}return conn.toString();}public String ischecked(String user, String pass) throws Exception {Connection conn = null;//获取连接  Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";try {conn = DriverManager.getConnection(url,user, pass);//不安全//建立连接return conn.toString();} catch (SQLException e) {e.printStackTrace();}finally {if (conn != null){try {conn.close();} catch (SQLException e){e.printStackTrace();}}}return null;} 
}
(2)首页展示页面的编写,命名为index.html,由于可能有网络的延迟,我们使用渐进的方式跳转(渐进方式跳转:window.location.href="newRealese_brief.jsp",从index.html页面跳转到NewRealese_brief.jsp页面,其实这里的跳转功能使用的是JavaScript中的window对象进行跳转的),代码如下所示:
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link type="text/css"  rel="stylesheet"  href="newsRealese.css"/>  <title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿堂</title></head><body id="body">正在跳转...,请等待...<script language="javascript" type="text/javascript">window.location.href="newRealese_brief.jsp"; </script></body>
</html>
在缓冲时,会进行跳转,跳转后的页面为newRealese_brief.jsp,其代码如下所示:进入新闻展示页面之后,我们能够对新闻进行搜素,还能够查看详细内容。
<%@page contentType="text/html" import="java.util.*,java.sql.*,com.lut.beans.NewsRealese,dao.NewsRealeseDao" pageEncoding="UTF-8" language="java"%>
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿堂</title><link type="text/css"  rel="stylesheet"  href="newsRealese.css"/>  </head><body id="body"><a href="adminLogin.jsp" style="table-layout: right">管理员登录</a><h1 id="p">最新资讯</h1><br><%@include file="a_queryNews.jsp"  %><table  border="0" style="width:100%; height:100%" align="center"><tr><td style="width: 10%"> </td><td><%NewsRealeseDao newsRealeseDao = new NewsRealeseDao();ArrayList newsRealese = newsRealeseDao.queryAllNews();%> <%for (int i = 0; i < newsRealese.size(); i++) {NewsRealese newRealese = (NewsRealese) newsRealese.get(i);%>   <center><table  border="0" width="100%" id="table"><tr><td width="128"><p>此处假设无图片</p><p>此处假设无等级信息</p></td><td ><table  border="0" width="100%"><tr><td width="11%" >原创或转载:</td><td colspan="3"><%=newRealese.getMyOther()%> </td><td width="10%" >新闻标题:</td><td width="44%" ><%=newRealese.getHeadTitle()%> </td></tr><tr>                  <td colspan="6">新闻内容:</td> </table><table width="100%" border="0"> <tr><td><a  target="_blank" href="newRealese_detail.jsp?newsid=<%=newRealese.getNewsId()%>"/><table width="100%" border="0" align="center"><tr><td> <%=newRealese.getContent()%>					     </td> </tr></table>             </td> </tr>  </table><table border="0" width="100%">      <tr><td width="51" height="30">作者:</td><td width="203"><%=newRealese.getAuthor()%> </td><td width="97">新闻发布时间:</td><td width="167"><%=newRealese.getNewsTime()%> </td><td width="99">新闻点击次数:</td><td width="191"><%=newRealese.getHits()%> </td></tr>         </table></td></tr><tr><td height="21" colspan="2"><hr></td></tr></table></center><%}%></td><td> </td></tr><tr><td> </td><td> </td><td> </td></tr>
</table>
</body>
</html>
(3)详细新闻页面的设计,命名为newRealese_detail.jsp其代码如下所示:再详细新闻页面上,我们能够进行数据的详细情况的了解,在观看完详细信息之后,我们能够进行点击返回按钮进行返回操作
<%@page contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8" language="java"%>
<%@page import="com.lut.beans.NewsRealese" %>
<%@page import="dao.NewsRealeseDao" %>
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css"  rel="stylesheet"  href="newsRealese.css"/>  <title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最值得浪漫的殿堂</title></head><body id="body"><h1>最新资讯</h1><br><%String newsid=request.getParameter("newsid");int newsid_int=Integer.parseInt(newsid);          NewsRealeseDao newsRealeseDao=new NewsRealeseDao();ArrayList newsRealese=newsRealeseDao.queryOneNews(newsid_int);%>          <table  border="1"><tr ><td >新闻编号</td><td>所属新闻栏目编号</td><td>所属新闻分类编号</td><td>原创或转载</td><td>新闻标题</td><td>新闻内容</td><td>相关文章</td><td>作者</td><td>编辑</td><td>出处</td><td>是否置顶</td><td>新闻发布时间</td><td>新闻点击次数</td><td>新闻状态</td><td>新闻标记</td>                                                                                                                                   </tr><%for(int i=0;i<newsRealese.size();i++){NewsRealese newRealese=(NewsRealese)newsRealese.get(i);       %><tr><td><%=newRealese.getNewsId()  %> </td><td><%=newRealese.getClassId()  %> </td><td><%=newRealese.getKindId()  %> </td><td><%=newRealese.getMyOther()  %> </td><td><%=newRealese.getHeadTitle()%> </td><td><%=newRealese.getContent()  %> </td><td><%=newRealese.getConnectRealtive()%></td><td><%=newRealese.getAuthor()  %> </td><td><%=newRealese.getEditor()  %> </td><td><%=newRealese.getNewsFrom()  %> </td><td><%=newRealese.getTop()  %> </td><td><%=newRealese.getNewsTime()  %> </td><td><%=newRealese.getHits()  %> </td><td><%=newRealese.getState()  %> </td><td><%=newRealese.getTag()  %> </td></tr>        </table>
<table width="100%" border="0" cellspacing="0" cellpadding="4"><tr><td width="100%" style="text-align: center; vertical-align: top"><table width="90%" border="0" cellpadding="0" cellspacing="0"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="4" ><tr><th width="26%" class="TitleColor" style="text-align: right; vertical-align: top" scope="row">新闻标题:  </th><td width="74%" style="vertical-align: top" class="TitleColor" ><p align="left"><%=newRealese.getHeadTitle()%><p></td></tr><tr><th scope="row" class="TitleColor" style="text-align: right; vertical-align: top">作者:</th><td style="vertical-align: top"><p align="left"><%=newRealese.getAuthor()  %>    <p>           </td></tr><tr><th scope="row" class="TitleColor" style="text-align: right; vertical-align: top">新闻发布时间: </th><td style="vertical-align: top" class="TitleColor"><p align="left"><%=newRealese.getNewsTime()  %><p></td></tr><tr><th scope="row" class="TitleColor" style="text-align: right; vertical-align: top">新闻点击次数:  </th><td style="vertical-align: top" class="TitleColor"><p align="left"><%=newRealese.getHits()  %><p></td></tr><tr><td colspan="2" class="StoryContentColor"><p align="center"><%=newRealese.getContent()  %><p></td></tr></table> </td></tr></table><p> </p>     <table><tr><td ><a href="newRealese_brief.jsp">返回</a></td><td><a href="#">发表评论</a></td></tr>      </table>   </td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="4"><tr style="text-align: right"><td><a href="#">点赞</a> <a href="#">举报</a> <a href="#">投稿,联系作者</a></td></tr>
</table><%}%>
</body>
</html>
(4)管理员登录界面,命名为adminLogin.jsp页面,使用连接数据库的方式进行登录,在这里我们的管理员名称为Scott,密码为wjk139,管理员登录界面的实现代码如下所示
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"  />
<title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最值得浪漫的殿堂</title>
<link type="text/css"  rel="stylesheet"  href="newsRealese.css"/>  
</head><body id="body"><form method="post" action="checkLogin"><table   border="0" align="center" id="table_vertical" ><caption>管理员登录 </caption><tr><td width="40">Admin</td><td width="183"><input type="text" name="user"></td></tr><tr><td height="25">Pass</td><td><input type="password" name="pass"></td></tr></table> <table align="center"><tr><td><input type="submit" value="Login"><input type="reset" value="Reset"></td></tr>  </table>
</form>
</body>
</html>
在登录的过程中,我们需要进行判断,命名为checkLogin.java,,通过此类进行判断登录是否成功,若成功,则跳转到管理界面,若失败,则停留在当前界面,其代码如下所示:
package servlet;
import com.lut.beans.NewsRealese;
import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class checkLogin extends HttpServlet {protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");String user=request.getParameter("user");String pass=request.getParameter("pass");NewsRealeseDao newsRealeseDao=new NewsRealeseDao();try {    String newsRealese=newsRealeseDao.ischecked(user,pass);if(newsRealese!=null){response.sendRedirect("adminManager.jsp");}else{response.sendRedirect("adminLogin.jsp");}        } catch (Exception ex) {Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}@Overridepublic String getServletInfo() {return "Short description"+"public String getServletInfo() ";}
}
(5)管理员登陆之后的界面,命名为adminManager.jsp页面,在管理员界面能够进行删除修改增加和查询操作,其代码如下所示:
<%-- Document   : adminManagerCreated on : 2016-5-18, 17:10:01Author     : Administrator
--%>
<%@page import="java.util.ArrayList"%>
<%@page import="com.lut.beans.NewsRealese"%>
<%@page import="dao.NewsRealeseDao"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>管理员界面||adminManager.jsp</title><link type="text/css"  rel="stylesheet"  href="newsRealese.css"/>  </head><body id="body" style=" text-orientation: vertical-right"><h1 id="p">新闻管理</h1><br><table border="1" style="width:100%; height:100%"><tr><td width="10%" style="text-align:top"><table  border="0" style="width: 100%;height: 100%" ><tr><td><div align="center">新闻信息显示 </div></td></tr><tr><td><img src="./images/dog.jpg" width="100%" height="90%"></td></tr><tr><td><img src="./images/minus.gif" ></td></tr></table></td><td width="50%"><table border="0"><tr><td><%  NewsRealeseDao newsRealeseDao = new NewsRealeseDao();ArrayList newsRealese = newsRealeseDao.queryAllNews();%> <%for (int i = 0; i < newsRealese.size(); i++) {NewsRealese newRealese = (NewsRealese) newsRealese.get(i);%>  <table  border="0" width="100%" id="table"><tr><td width="128"><p>此处假设无图片</p><p>此处假设无等级信息</p>            </td><td ><table  border="0" width="100%"><tr><td  >原创或转载:</td><td ><%=newRealese.getMyOther()%> </td><td >新闻标题:</td><td ><%=newRealese.getHeadTitle()%> </td></tr><tr>                  <td colspan="6">新闻内容:</td> </table><table width="100%" border="0"> <tr><td><a  target="_blank" href="newRealese_detail.jsp?newsid=<%=newRealese.getNewsId()%>"/><table width="100%" border="0" align="center"><tr><td> <%=newRealese.getContent()%>						     </td> </tr></table>		          </td> </tr>  </table><table border="0" width="100%">      <tr><td width="51" height="30">作者:</td><td width="203"><%=newRealese.getAuthor()%> </td><td width="97">新闻发布时间:</td><td width="167"><%=newRealese.getNewsTime()%> </td><td width="99">新闻点击次数:</td><td width="191"><%=newRealese.getHits()%> </td></tr>         </table></td></tr>          <tr><td height="21" colspan="2"><input type="button" name="delete" value="删除"  align="middle" onclick="javascrtpt:window.location.href = 'DeleteOneNews?newsid=<%=newRealese.getNewsId()%>'"> <input type="button" name="delete" value="修改"  align="middle"  onclick="javascrtpt:window.location.href = 'a_updateNews.jsp?newsid=<%=newRealese.getNewsId()%>'"><hr>			</td></tr></table><%}%></td></tr></table></td><td width="5%" style=" text-orientation: vertical-right"><%@include file="a_queryNews.jsp"  %></td></tr><tr><td align="center"><a href="a_addNews.jsp" target="_blank">添加新闻</a></td><td align="center">二</td><td align="center">三</td></tr></table></body>
</html>
(6)增加新闻页面,命名为a_addNews.jsp,能够进行新闻的增加,在添加完信息之后,我们点击发布之后就可以成功添加信息,其代码如下所示,增加新闻时需要对新闻进行编辑,对于长篇幅新闻内容且含有图片的新闻内容的编写,在这儿我们使用功能强大的百度编辑器,首先从官网下载: 百度编辑器下载,下载之后解压(我使用的版本是ueditor1_4_3_2-utf8-jsp),如下图所示结构,我们也能够在这里查看百度编辑器的配置: 百度编辑器的配置
图10 百度富文本编辑器文件夹结构图
然后只需将整个文件夹拷贝到项目下即可,在使用时引入和修改路径,在jsp页面里边我已经配置好引用,只需修改路径即可,修改路径时只需将editor_config.js中查找URL变量配置编辑器在你项目中的路径。其中./ueditor为项目中的文件夹
var URL= window.UEDITOR_HOME_URL||"./ueditor/";
这样就配置好了编辑器,下面就是增加新闻的jsp页面,在添加完新闻之后,只需点击发布即可进行新闻的发布操作,代码如下所示:
<%@page contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8" language="java"%>
<%@page import="com.lut.beans.NewsRealese" %>
<%@page import="dao.NewsRealeseDao" %>
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>添加新闻- 新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿tang</title><!-- 配置文件 --><script type="text/javascript" src="./ueditor/ueditor.config.js"></script><!-- 编辑器源码文件 --><script type="text/javascript" src="./ueditor/ueditor.all.js"></script><link rel="stylesheet" type="text/css" href="./udeditor/themes/default/css" /><link type="text/css"  rel="stylesheet"  href="newsRealese.css"/></head><body id="body"><form action="InsertOneNews" method="post"><table  border="0" id="table"><tr><td width="5%">left</td><td width="90%">    <table  border="1" id="table"><tr ><td >新闻编号</td> <td><input type="text" name="newsid"></td><td>所属新闻栏目编号</td> <td><input type="text" name="classid"></td></tr><tr><td>所属新闻分类编号</td> <td><input type="text" name="kindid"></td><td>原创或转载</td> <td><input type="text" name="myother"></td></tr><tr><td>新闻标题</td> <td><input type="text" name="headtitle"></td><td>相关文章</td> <td><input type="text" name="connectrealtive"></td></tr><tr><td>作者</td> <td><input type="text" name="author"></td><td>编辑</td> <td><input type="text" name="editor"></td></tr><tr><td>出处</td> <td><input type="text" name="newsfrom"></td><td>是否置顶</td> <td><input type="text" name="top"></td></tr><tr><td>新闻发布时间</td> <td><input type="text" name="newstime"></td><td>新闻点击次数</td> <td><input type="text" name="hits"></td></tr><tr><td>新闻状态</td> <td><input type="text" name="state"></td><td>新闻标记</td> <td><input type="text" name="tag"></td>                                                                      </tr><tr></table></td><td width="5%">right</td></tr><tr><td> </td><td><div align="center" style="width:80%">  <textarea id="newsEditor" name="content" style="height: 80%"></textarea>  <br/>  <input type="submit" value="发 布">  <script type="text/javascript">UE.getEditor('newsEditor');// var content = UE.getPlainTxt();//content就是编辑器的带格式的内容//focus时自动清空初始化时的内容</script>  </div></td><td> </td></tr></table>   </form></body>
</html>
在增加新闻时,需要对Servlet进行配置,如下图所示所示为配置文件的结构:
插入数据Servlet结构图
下面是InserOneNews.java代码,能够进行对数据的插入功能
package servlet;
import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class InsertOneNews extends HttpServlet {protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");try (PrintWriter out = response.getWriter()) {ArrayList addnews_list = new ArrayList();NewsRealeseDao newsRealeseDao = new NewsRealeseDao();addnews_list.add(0, request.getParameter("newsid"));addnews_list.add(1, request.getParameter("classid"));addnews_list.add(2, request.getParameter("kindid"));addnews_list.add(3, request.getParameter("myother"));addnews_list.add(4, request.getParameter("headtitle"));addnews_list.add(5, request.getParameter("content"));addnews_list.add(6, request.getParameter("connectrealtive"));addnews_list.add(7, request.getParameter("author"));addnews_list.add(8, request.getParameter("editor"));addnews_list.add(9, request.getParameter("newsfrom"));addnews_list.add(10, request.getParameter("top"));addnews_list.add(11, request.getParameter("newstime"));addnews_list.add(12, request.getParameter("hits"));addnews_list.add(13, request.getParameter("state"));addnews_list.add(14,request.getParameter("tag"));try {String newsRealese = newsRealeseDao.insertOneNews(addnews_list);System.out.println("String:"+newsRealese);if (newsRealese!= null) {response.sendRedirect("adminManager.jsp");} else {response.sendRedirect("a_addNews.jsp");}} catch (Exception ex) {Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);}}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}@Overridepublic String getServletInfo() {return "Short description";}
}
至此,我们完整的实现了插入工作
(7)现在完成删除操作,在Servlet包中建立如下所示代码,命名为DeleteOneNews.java:
package servlet;
import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DeleteOneNews extends HttpServlet {protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");try (PrintWriter out = response.getWriter()) {String str_id=request.getParameter("newsid");int newsid_int=Integer.valueOf(str_id);NewsRealeseDao newsRealeseDao=new NewsRealeseDao();try {String newsRealese = newsRealeseDao.deleteOneNews(newsid_int);System.out.println("String:"+newsRealese);if (newsRealese!= null) {response.sendRedirect("adminManager.jsp");} else {response.sendRedirect("a_addNews.jsp");}} catch (Exception ex) {Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);}}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}/*** Handles the HTTP <code>POST</code> method.** @param request servlet request* @param response servlet response* @throws ServletException if a servlet-specific error occurs* @throws IOException if an I/O error occurs*/@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}/*** Returns a short description of the servlet.** @return a String containing servlet description*/@Overridepublic String getServletInfo() {return "Short description";}
}
(8)实现查询操作,命名为a_queryNews.jsp,其代码如下所示:
<%-- Document   : a_queryNewsCreated on : 2016-5-18, 17:08:40Author     : Administrator
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>查询页面</title></head><body><table  style="width:100%;height:100%" border="0"><tr><td><form action="QueryOneNews"  method="post" target="_blank" >请输入新闻编号:<input type="text" name="query"><input type="submit" value="查询" ><br></form><hr></td></tr><tr><td> </td></tr></table></body>
</html>
对于查询这件事,有成功,有失败,在这儿我们进行失败后文件的设置,代码如下所示,命名为a_queryNewsfailed.jsp,使用超级连接的方式,连接到主页面
<%-- Document   : a_queryNeesfailedCreated on : 2016-6-6, 8:43:35Author     : Administrator
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>查询失败</title></head><body><h1>没有找到你要查找的内容,但是你可以进入</h1><a href="index.html">主页进行查看</a></body>
</html>
实现了以上显示层的操作之后,下面就是控制层的实现,命名为QueryOneNews.java,其代码如下所示:
package servlet;
import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class QueryOneNews extends HttpServlet {protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");try (PrintWriter out = response.getWriter()) {String str_id=request.getParameter("query");int newsid_int=Integer.valueOf(str_id);NewsRealeseDao newsRealeseDao=new NewsRealeseDao();try {ArrayList newsRealese = newsRealeseDao.queryOneNews(newsid_int);char [] s1=newsRealese.toString().toCharArray();System.out.println("String+newsRealese:"+newsRealese);System.out.println("String+newsRealese:"+s1[0]+" -------"+s1[1]);if(s1[0]=='['&&s1[1]==']'){response.sendRedirect("a_queryNewsfailed.jsp");} else{response.sendRedirect("newRealese_detail.jsp?newsid="+str_id); }    } catch (Exception ex) {Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);}}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}@Overridepublic String getServletInfo() {return "Short description";}
}
(9)下面实现更新数据的操作,命名为a_updateNews.jsp,其代码如下所示:
<%@page contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8" language="java"%>
<%@page import="com.lut.beans.NewsRealese" %>
<%@page import="dao.NewsRealeseDao" %>
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>更改新闻-</title><!-- 配置文件 --><script type="text/javascript" src="./ueditor/ueditor.config.js"></script><!-- 编辑器源码文件 --><script type="text/javascript" src="./ueditor/ueditor.all.js"></script><link rel="stylesheet" type="text/css" href="./udeditor/themes/default/css" /><link type="text/css"  rel="stylesheet"  href="newsRealese.css"/></head><body id="body"><%NewsRealeseDao newsRealeseDao=new NewsRealeseDao();String newsid_s=request.getParameter("newsid");int news_int=Integer.valueOf(newsid_s);ArrayList news_list=newsRealeseDao.queryOneNews(news_int);%><%for(int i=0;i<news_list.size();i++){NewsRealese newRealese=(NewsRealese)news_list.get(i);       %><form action="UpdateOneNews" method="post"><table  border="0" id="table" style="width:95%"><tr><td width="5%">left</td><td width="90%">    <table  border="1" id="table" style="width:100%"><tr >       <tr><td >新闻编号</td> <td><input  type="text"  width="100%" name="newsid" value="<%=newRealese.getNewsId()  %>"></td><td>所属新闻栏目编号</td> <td><input type="text" width="100%" name="classid" value="<%=newRealese.getClassId()  %>"></td></tr><tr><td>所属新闻分类编号</td> <td><input type="text" width="100%" name="kindid" value="<%=newRealese.getKindId()  %>"></td><td>原创或转载</td> <td><input type="text" width="100%" name="myother" value="<%=newRealese.getMyOther()  %>"></td></tr><tr><td>新闻标题</td> <td><input type="text" width="100%" name="headtitle" value="<%=newRealese.getHeadTitle()%>"></td><td>相关文章</td> <td><input type="text" width="100%" name="connectrealtive"  value="<%=newRealese.getConnectRealtive()%>"></td></tr><tr><td>作者</td> <td><input type="text" width="100%" name="author"  value="<%=newRealese.getAuthor()  %>"></td><td>编辑</td> <td><input type="text" width="100%" name="editor"  value="<%=newRealese.getEditor()  %>"></td></tr><tr><td>出处</td> <td><input type="text" width="100%" name="newsfrom"  value="<%=newRealese.getNewsFrom()  %>"></td><td>是否置顶</td> <td><input type="text" width="100%" name="top"  value="<%=newRealese.getTop()  %>"></td></tr><tr><td>新闻发布时间</td> <td><input type="text" width="100%" name="newstime"  value="<%=newRealese.getNewsTime()  %> "></td><td>新闻点击次数</td> <td><input type="text" width="100%" name="hits"  value="<%=newRealese.getHits()  %>"></td></tr><tr><td>新闻状态</td> <td><input type="text" name="state" width="100%"  value="<%=newRealese.getState()  %>"></td><td>新闻标记</td> <td><input type="text" width="100%" name="tag"  value="<%=newRealese.getTag()  %>"></td>                                                                      </tr><tr></table></td><td width="5%">right</td></tr><tr><td> </td><td><div align="center" style="width:80%">  <textarea id="newsEditor" name="content" style="height: 80%"><%=newRealese.getContent()  %></textarea>  <br/>  <input type="submit" value="发 布">  <script type="text/javascript">  UE.getEditor('newsEditor');  var content=UE.getPlainTxt();//s就是编辑器的带格式的内容</script>  </div>	</td><td> </td></tr>
</table>   </form><%}%>
</body>
</html>
在Servlet中进行如下代码所示配置:
package servlet;
import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UpdateOneNews extends HttpServlet {protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");try (PrintWriter out = response.getWriter()) {ArrayList addnews_list = new ArrayList();NewsRealeseDao newsRealeseDao = new NewsRealeseDao();addnews_list.add(0, request.getParameter("newsid"));addnews_list.add(1, request.getParameter("classid"));addnews_list.add(2, request.getParameter("kindid"));addnews_list.add(3, request.getParameter("myother"));addnews_list.add(4, request.getParameter("headtitle"));addnews_list.add(5, request.getParameter("content"));addnews_list.add(6, request.getParameter("connectrealtive"));addnews_list.add(7, request.getParameter("author"));addnews_list.add(8, request.getParameter("editor"));addnews_list.add(9, request.getParameter("newsfrom"));addnews_list.add(10, request.getParameter("top"));addnews_list.add(11, request.getParameter("newstime"));addnews_list.add(12, request.getParameter("hits"));addnews_list.add(13, request.getParameter("state"));addnews_list.add(14,request.getParameter("tag"));try {String newsRealese = newsRealeseDao.updateOneNews(addnews_list);System.out.println("String:"+newsRealese);if (newsRealese!= null) {response.sendRedirect("adminManager.jsp");} else {response.sendRedirect("a_addNews.jsp");}} catch (Exception ex) {Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);}}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {processRequest(request, response);}@Overridepublic String getServletInfo() {return "Short description";}
}
到这儿,我们已经实现了对增删改查功能的实现,当然,基本的新闻发布功能已经实现
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45002.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宋宇-课堂对话领域研究热点与 前沿趋势探究

好家伙。。。 看这种论文容易自闭&#xff0c;&#xff0c;&#xff0c;怎么能写这么好呢。。。 下次看看博士的论文吧还是。。 定义 课堂对话( classroom dialogue /discourse) 是师生间或者生生间围绕教育教 学目标的实现所形成的良性的交流活动。&#xff3b;1&#xff3d…

【论文阅读】社交网络传播最大化问题-03

Leader-aware community detection in complex networks Leader-aware community detection algorithm - 领导感知社区检测算法 创新点相关工作概念定义基础概念创新概念1. &#xff08;领导力&#xff09;2. &#xff08;边缘紧性&#xff09;3.&#xff08;引力&#xff09; …

用WEB OF SCIENCE助力创新性科学研究

用WEB OF SCIENCE助力创新性科学研究 Web of science是什么&#xff1f;web of science 怎么用&#xff1f;2.1 这个领域值得研究吗&#xff1f;-检索创建引文报告2.2若可行&#xff0c;那该领域进展如何&#xff1f;-看综述2.3 选择自己在该领域的->细分方向&#xff08;或…

【论文阅读】社交网络传播最大化问题-04

Efficient Influence Maximization in Social Networks 相关工作改进的贪心算法对独立级联模型的改进对加权级联模型的改进 改进度折扣算法 影响力最大化&#xff1a;在社交网络中找到一小部分能够最大化传播影响力的节点(种子节点)。 一是改进原有的贪心算法&#xff0c;进一步…

【论文阅读】用于自动中文作文评分的多阶段预训练

摘要 这篇文章提出了一个基于预训练的中文作品评分方法。方法包含3个成分&#xff1a;弱监督预训练&#xff0c;有监督的交叉提示&#xff08;cross-prompt&#xff09;微调 和 有监督的目标提示&#xff08;target-prompt&#xff09;微调。一个文章打分器首先在一个大的文章…

【论文阅读】社交网络传播最大化问题-01

问题定义&#xff1a;构建传播最大化模型&#xff08;最大化末态时的激活节点数量 &#xff09;& 确定最具影响力节点 思考问题&#xff1a; 影响节点影响力的因素&#xff1f;有向图和无向图的模型构建区别&#xff1f; 定义参数&#xff1a; 节点影响力的取值范围节点…

谣言检测论文精读——12.2020-基于多级融合的多模态谣言检测模型

时间&#xff1a;2020 这篇文章解决的问题 各模态间的语义信息在特征空间是 异构的,这可能会导致以下两个问题:①多模态之间的信息融合不够充分;②模型过于依赖各模态间的信息完整度 (可能有的事件只存在文本信息,而有的事件只存在图片 信息)。 作者如何解决这个问题的 作…

2023最新新闻文章发布系统的设计与实现(毕业设计+论文+开题报告+运行)

摘 要 随着计算机技术的迅速发展&#xff0c;网络正以一种前所未有的冲击力影响着人类的生产和生活。网络的快速发展&#xff0c;颠覆了传统的信息传播方式&#xff0c;冲破了传统的时间&#xff0c;空间的局限性&#xff0c;继而引发了人类阅读方式的变革。现如今&#xff0…

新闻发布|基于JavaWeb实现新闻发布管理系统+论文+PPT

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java、前端、Python开发多年&#xff0c;做过高程&#xff0c;项目经理&#xff0c;架构师 主要内容&#xff1a;Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码 项…

柯桥托业TOEIC考试和PETS哪个含金量高?

说到对职场有益的证书&#xff0c;无外乎托业和BEC证书。但还有一种面向社会人士的考试&#xff0c;也有很多小伙伴很感兴趣。那就是PETS考试。 很多小伙伴也很好奇托业和PETS的区别&#xff0c;今天来给大家科普下喽。 TOEIC-托业考试 托业考试由美国教育考试服务中心(ETS)开…

每日涨停个股增量加入股票池,持续跟踪走势!股票量化分析工具QTYX-V2.6.5

功能概述 目前A股市场的股票每天是有限制最大涨幅的&#xff0c;也就是涨停的概念。比如主板个股最大涨幅是10%&#xff0c;创业板个股最大涨幅是20%等。 对于个股而言并不是随随便便就能被推到涨停板的。或是因为股票发生了重大的利好&#xff08;资产重组、政策利好、业绩暴增…

通达信筹码循环指标源码 显示吸筹拉升出货的过程

出现双红带时买入 源代码&#xff1a; VUR1:(CAPITAL*(2*(OL)/2(HC)/2L3*(CL)/2)/7); VUR2:(SMA(AMOUNT,8,1)/1000); VUR3:EMA((CL)/2*3,3); VUR4:(VUR2*(CL)/2*3/VUR3)/10; VUR5:(VUR2*(OL)/2*3/VUR3)/10; VUR6:(VUR2*(HC)/2*3/VUR3)/10; VUR7:(VUR2*L*3/VUR3)/10; VU…

A股全市场个股涨停板明细来袭!—股票数据远程下载服务升级

前言 创建知识星球《玩转股票量化交易》的初心是为了建立一个可以深入学习和交流的私有量化圈子&#xff0c;和志同道合的小伙伴们一起搭建私有的量化交易系统&#xff0c;并且不断迭代完善这个系统&#xff0c;从而能够帮助我们更高效地分析股票、获得更大的盈利机会。 关于星…

从同花顺获取涨停数据,视图化分析优质板,方便投资。

同花顺每日涨停数据获取 视图化分析优质板 import pandas as pd import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt from matplotlib.widgets import MultiCursor mpl.rcParams[font.sans-serif][SimHei] #导入数据 df pd.read_excel(rE:\同花顺…

vue2和elementUI 打造落日余晖登录页和滑块校验

文章目录 前言1 项目搭建2 依赖引入3 项目调整①vue-router② App.vue③ main.js 4 写登录页5 写滑块校验6 源码下载7 问题解决①项目一直报错② 背景图存在白边 前言 标题很夸张&#xff0c;实则是AI的功能&#xff0c;今天咱也搞一个登录页&#xff0c;其实满简单的一个东东…

问卷星录入过程参考

前面讲过的那些这里就不在重复了。直接从录入数据开始讲起&#xff0c; 这里我正好在录入一个问卷内容,以此为例来说一下 因为我首先要录入的是单选题&#xff0c;所以先点击单选添加单选题。 我录入的问题 其他题目的操作都与此类似,可供参考&#xff0c;希望能解决你的疑惑。…

python自动化------问卷星刷问卷3.0版本

接上&#xff0c;之前做的问卷星刷问卷的功能单一&#xff0c;每个题目只能选一个选项。现在的3.0版本功能增加了计数器&#xff08;刷了几份问卷&#xff09;、多选项的选择、通过滑块验证。想要了解之前的相关信息请看下面的链接&#xff1a; 隔壁寝室刷问卷刷疯了&#xff…

如何愉快的填写问卷星

从业务开发&#xff0c;了解http本质。 问卷星代刷方法: pythonselenium 通过自动化测试工具正常填写&#xff0c;方法低效&#xff0c;容易出现安全检测&#xff08;本文不讲&#xff09;。post请求&#xff0c;模拟包发送&#xff0c;简单快捷&#xff0c;跳过安全检测&…

问卷星最新调研爬虫自动填写

利用简单权重设置选项比例分配以及条件判断语句即可将问卷往你选择的放向走&#xff0c;需要对前端稍微了解即可&#xff0c;用谷歌的开发者工具查看元素 例如&#xff1a;check rank[i].find_elements(byBy.CLASS_NAME,value"ui-radio") from selenium import webd…

仿造问卷星--开发一套调查问卷设计工具(2/3)--完整流程

本章主要内容是完善index.js逻辑功能。 1&#xff0c;修改index.html&#xff0c;直接copy html和css文件直接从源码中拷贝&#xff1a; html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-eq…