web项目中关于修改功能的问题

在写修改代码的时候,有一些不会变动的字段,如id,创建时间等,对于这些字段的处理方法除了下面几种还有什么方法吗?
1、隐藏到页面上
2、修改的时候再从数据库查询一次
3、保存到服务器上
我觉得这三种方法都不太好,想问一下还有没其他更好的方法呀?

6个回答

如果是hibernate,,给不更新的字段设置update为false

不更新不需要修改的字段就行了,干嘛放表单里面。。都不需要放。

id肯定要放在表单隐藏域中,要不怎么知道修改的哪条记录?session之类记录的话如果没提交之前又打开另外一条记录,在返回原来页面提交更新的就是最新打开的记录了

session域,request域

如果是页面效果,你就给它不可编辑的属性。

不可以修改的字段使用不可编辑的标签在页面中展示,或是不显示,这样客户不可能会修改数据,除非你在后台修改。如果不需要展示的数据,最好不要传送到前台页面,防止调试修改。

把属性设置为不可更改就可以了啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
通过tomcat启动后的web项目如何跟另外一个java项目交互
项目经理让我完成对一个web项目的日志级别动态修改,要我提供一个接口用于修改日志级别, 我首先想到了使用servlet,通过访问servlet来修改,可项目经理却叫我用Main来实现这一功能,生成一个jar包 通过本地的脚本语言调用这个jar包的Main方法来修改日志级别。Socket也不能使用。 两个java程序在以上不能使用的方法外,还能可以使用哪些方法进行交互呢?
java web项目初学者刚就业想找个师傅请教一些问题,有人愿意教我么
公司师傅交给我一个项目,做一个web项目,功能如下,好像蛮难的 1、主要功能实现公司产品展示,新版本发布通知,问题及处理方式收集等 2、主要界面显示 a)首页:显示产品大目录(可利用图片方式展示),展示不同的产品 显示产品相关通知信息 显示账号入口 b)首页链接页面说明 产品大目录,可点击查看该对应产品的详细信息; 产品通知,可以点击查看对应条目的详细信息,可以通过更多项进入通知专属页面,该页面提供通知条目目录,关键字查询功能; 账号入口,可以实现账户登录,采用账号/密码方式 3、主要功能说明 a)普通用户登录后功能 显示公司产品的目录信息,根据产品目录可以查看该产品的详细信息,包括介绍,当前版本,最新更新等; 显示各个产品问题收集目录,可参考论坛分类样式,根据产品进入不同的产品讨论区; 可以发布问题,填写问题标题,产品归类,问题描述(可以使用图片),发布成功的问题,自动显示到对应产品归类中 可查询、显示自己发布的问题和解答参与的问题条目 对自己发布的问题,可以进行修改,补充问题描述,关闭问题。 问题关闭后,不能再进行修改 b)产品经理登录后功能 具备全部普通用户功能 具有问题解答功能,即在问题讨论区,可以对提出的问题进行解答 产品通知发布管理功能,可以对产品新的变动进行发布通知,删除自己发布的通知,通知内容包括,标题,产品归类(默认为产品经理对应的产品或无固定产品经理的产品,日常产品),通知内容等 c)系统管理员登陆后功能 公司产品管理功能,产品添加、修改、删除,产品内容包括产品标题、分类归属、产品介绍,产品图片等 产品分类管理,分类添加,修改,删除,分类项包括:分类名,说明等 用户管理,添加、修改,删除,用户信息包括:用户名称,密码,权限,归属产品(产品经理权限时) # 想通过这个项目学点东西,在做的过程中估计会碰到很多问题,想找个师傅咨询一下,有人愿意帮助我么
web项目测试100并发用loadrunner怎么测试呀
想测试一个web项目的下单功能,100个并发,怎么进行压力测试呀,是先写脚本吗?还是录制脚本然后修改脚本进行压力测试?期望大神可以详细说一下步骤
java-web项目维护问题
后期进行功能的修改、增加,可能涉及数据库表的变化。 系统与数据库均在客户机上面。tomcat的
大型的java web项目 如何多人协作 而且保证自己小组的功能模块不被其他人看到
一个大的 javaweb项目 用 spring springmvc mybatis框架编写 如何保证代码的安全性 核心的业务代码不想让所有的开发人员 查看更改 而且项目是多人合作,后台管理都集中在一个管理页面
asp.net做网站新建项目web空应用程序还是新建网站
小弟刚出来工作,第一个项目是建的asp.net空网站,但是在发布网站的时候会把每个bin文件里的每个cs类文件生成一个随机命名的dll文件,网站上线后,如果有些功能要修改cs文件的话,就很麻烦,要重新上传所有的内容,听说新建web应用程序就不会有这个问题,web应用程序会把cs文件封装在一个dll里面,是这样吗?这些我都还不是很懂,做网站的话是新建哪个好点,各自有什么优缺点?希望前辈们指教一下,万分感谢。
两个不同WEB系统之间限定条件的信息交互问题
1. 设存在两个web项目,分别是ProjectA和ProjectB,ProjectB不可修改,ProjectA可任意修改。 2. ProjectA存在a1页面,ProjectB存在b1页面。 3. b1页面实现的是账号、密码登陆功能。 4. a1页面存在一个按钮btn1,点击btn1则打开新的标签页且链接到b1页面,同时在a1页面中弹出提示“未登陆”。 5. 在新的标签页链接到的b1页面上登陆成功后,a1页面提示从“未登陆”转换为“登陆成功”。 6. 问如何实现以上功能,最好可以给出详细的算法和技术,再次强调注意几个限定的条件: a) ProjectA和ProjectB是两个不同项目,同时部署在tomcat上。 b) ProjectB不可修改。 c) 是否能在JavaScript上寻找可能性,还是浏览器插件。 7. 感谢提供想法的各位网友!
web分布式架构是这样理解的吗?
本人这几天研究分布式架构 有些概念了解的很不清楚 所以拿出来跟各位讨论讨论,请各位大胆的发表自己的观点 我的了解分布式架构主要有以下几种 1::tomcat+nginx+memcached+mysql集群 案例:1个nginx服务器 3个tomcat服务器 1个memcached 类似这种搭建起来的也属于一种分布式架构 对吗 各位?? 2:然后现在炒的比较热门的hadoop+hbase等也是属于一种分布式架构????这种也是属于分布式吗 各位? 请问大家:1和2都有什么优点和缺点? 其中1跟2的区别 (个人了解) 不同点: 1 主要是利用软件自身有的功能进行分布式 比如mysql集群 通过配置就可以完成 而2呢 是通过代码的方式来实现分布式架构 相同点: 2:不管哪一种方式都需要部署同一个web项目多份 比如3个tomcat就需要把同一个web项目copy三份到3个tomcat下面 而如果是hadoop架构也一样需要把同一个web项目copy多份部署到多个hadoop的服务器上去。 3:由于第2点 copy多份 就会出现主从服务器之分 比如我们修改了程序代码 我们只需要把变动的代码copy到主服务器 需要通过监控的方式把变动的代码 自动从主服务器上copy到其他从服务器上去 这种用的是什么软件???哪位知道? 请教的地方: mysql集群 就是任何一台mysql服务器的数据都是一致 仅仅是我们的web程序访问数据库的时候 mysql会自动根据服务器压力来判断 我们到底需要访问哪台mysql服务器而已????对吗 各位? 还有一点在web项目当中应用mysql集群或者在项目当中通过配置多个数据源的方式来利用多个数据库有什么优缺点???
关于tomcat运行时发现的一次错误问题,希望有大佬能排忧解难一下,感谢
最近在进行一个小型的web工程开发,这个web是做运维局域网内服务器的平台,项目的基本功能现在已经实现的差不多了,但是在发布部署在tomcat上碰到了一些问题,因缺乏这方面的认识,无法定位准确的问题所在。 问题是这样的,在局域网内,一台服务器用的是centos,在tomcat上部署web应用,当我把war工程文件放到tomcat目录底下的webapps中,一切都如自己所想的那样子正常运行,功能都可以使用,然后接着在本机ecilpse上继续优化升级代码方面的事情,某一天当我再去访问这个项目时,提示告诉我无法连接到这个ip:端口号/项目名,然后我就去试着ping两台机器,发现一切都正常,之后我就在这个服务器上单独本地访问web项目(非开发的电脑,部署测试的),访问localhost去看是否能访问这个部署在tomcat的项目(仅有一个),发现,服务器自己都不能访问的到这个web,之后我直接访问这个tomcat服务器(就是localhost:8080),发现那只猫的界面也访问不了,尝试了半天,发现都没怎么用,之后重启了tomcat就能正常访问了,现在大致归纳了几个点问题 1、内存溢出(百度告诉说这样子像是tomcat假死现象,需要设置什么jvm参数) 2、查阅tomcat日志发现说socket打开太多了,超出了限制(疑似web程序中有操作流的方法,但是我每次使用完都会释放掉资源close掉的,但是在后台中,有写了一些定时任务)![图片说明](https://img-ask.csdn.net/upload/201909/11/1568197140_31882.png) 3、关于tomcat进程用命令查看了一番,也没发现个啥问题, 4、有的说是和这个限制数有关![图片说明](https://img-ask.csdn.net/upload/201909/11/1568197277_710199.png) 但是我修改了限制但是也还是没有任何反应; 能有大佬教教我改怎么定位到这个问题吗? -------------------------------------------------------------------- 项目用的是ssm(Mybatis/SpringMvc/Struts2)的框架 tomcat7服务器,端口已经把默认的8080改成没占用过的其他端口
web项目在执行大量的插入语句时执行一段时间后卡死
SSH框架,在页面有一个poi 批量导入excel的功能,每读取excel一行,保存为一个实体然后循环insert到DB里。刚开始程序运行正常,但是一段时间过后,系统出现卡死,不再执行insert sql ,刷新页面也没有响应,只能重启服务器。期间程序没有报错,myeclipse也不是内存溢出导致的卡死,因为点击其他功能模块时不会出现上述所说的问题,只有在执行大量的insert sql 时才会。 因为代码没有报错我也就不贴代码了。 我自己想的不知道是不是hibernate在做insert时由于数据量大导致链接关闭,但是我设置数据库连接池断开时间是1800s,事实上也没有超过。由于不知道hibernate底层的源码是怎样执行insert的,希望有大神说说,为什么在执行少量的insert时系统不会卡死,但处理大量数据并长时间insert的就是卡死。 虚心求各位指导!谢谢大家。如果有需要我会贴出代码。感谢。 更改过后的代码,但是又有新的问题 ``` @Override public void save(List<T> list) { long begin = System.currentTimeMillis(); Session session = getSession(); try { for (int i = 0; i < list.size(); i++) { session.save(list.get(i)); if (i%50 == 0 && i != 0) { session.flush(); session.clear(); } } } catch (Exception e) { e.printStackTrace(); } finally{ session.clear(); } long end = System.currentTimeMillis(); System.out.println((end-begin)/1000.0); } ``` 这是basedao,是spring管理hibernate,加了2个属性 ``` <prop key="hibernate.jdbc.fetch_size">100</prop> <prop key="hibernate.jdbc.batch_size">50</prop> ``` 方法是根据不同的实体批量insert,虽然现在执行大量insert时不会中断,但是我有4个实体要连续执行批量insert,在insert完前2个实体后,我在第三个实体调用批量导入的方法设了断点,程序并没有停在断点上,又出现了卡死的情况。PS:不知道是不是在insert第二个实体那里就卡死了,还是说执行完第二个批量insert就卡死了,反正我在第三个批量insert方法前断点没进,并且系统卡死,只能重启。 请大家不吝赐教!感谢!
java web项目整合一个图片上传webUploader
因为是初学者,所以想写个ssh的小项目,练练手, 在网上下了一个商城的后台模板,最近正在实现功能, 现在写到了,新增商品时的上传功能, 模板自带的上传是用的webUploader, 现在遇到的问题是图片上传的时候不知道怎么保存在服务器中, 代码如下: html: <div class="clearfix cl"> <label class="form-label col-2">图片上传:</label> <div class="formControls col-10"> <div class="uploader-list-container"> <div class="queueList"> <div id="dndArea" class="placeholder"> <div id="filePicker-2"></div> <p>或将照片拖到这里,单次最多可选300张</p> </div> </div> <div class="statusBar" style="display:none;"> <div class="progress"> <span class="text">0%</span> <span class="percentage"></span> </div> <div class="info"></div> <div class="btns"> <div id="filePicker2"></div> <div class="uploadBtn">开始上传</div> </div> </div> </div> </div> </div> js: $(function(){ $('.skin-minimal input').iCheck({ checkboxClass: 'icheckbox-blue', radioClass: 'iradio-blue', increaseArea: '20%' }); $list = $("#fileList"), $btn = $("#btn-star"), state = "pending", uploader; var uploader = WebUploader.create({ auto: true, swf: 'lib/webuploader/0.1.5/Uploader.swf', // 文件接收服务端。 server: 'fileUpload.action', // 选择文件的按钮。可选。 // 内部根据当前运行是创建,可能是input元素,也可能是flash. pick: '#filePicker', // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! resize: false, // 只允许选择图片文件。 accept: { title: 'Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/*' } }); }); 问题是, // 文件接收服务端。 server: 'fileUpload.action', 在网上查的这个属性是文件接收服务器端,如果我给一个Action,它会显示上传成功![图片说明](https://img-ask.csdn.net/upload/201706/25/1498386878_982619.png) 就算是上传成功,在服务器也找不到这个图片, 但是,原页面和网上搜到的一些例子都是 // 文件接收服务端。 server: 'http://webuploader.duapp.com/server/fileupload.php', 以php结尾的文件,这个是有什么问题,求解释 如果我修改成这个文件,就上传失败了, 这个属性值到底是给什么,还有,我怎么能获取到他的路径,文件名称,是在Action中定义file属性,get,set,获取他的值吗?
Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果?
现在在做一个项目,其中编写了数据库连接及操作的类。 1、ConnDB类。 package com.wgh.tools; import java.io.InputStream; //导入java.io.InputStream类 import java.sql.*; //导入java.sql包中的所有类 import java.util.Properties; //导入java.util.Properties类 public class ConnDB { public Connection conn = null; // 声明Connection对象的实例 public Statement stmt = null; // 声明Statement对象的实例 public ResultSet rs = null; // 声明ResultSet对象的实例 //private static String propFileName = "connDB.properties"; // 指定资源文件保存的位置 //private static Properties prop = new Properties(); // 创建并实例化Properties对象的实例 private static String dbClassName = "com.mysql.jdbc.Driver"; // 定义保存数据库驱动的变量 private static String dbUrl = "jdbc:mysql://127.0.0.1:3306/db_9griddiary?user=root&password=&useUnicode=true&characterEncoding=utf8"; // public ConnDB() { // 构造方法 // try { // 捕捉异常 // // 将Properties文件读取到InputStream对象中 // InputStream in = getClass().getResourceAsStream(propFileName); // prop.load(in); // 通过输入流对象加载Properties文件 // dbClassName = prop.getProperty("DB_CLASS_NAME"); // 获取数据库驱动 // // 获取连接的URL // dbUrl = prop.getProperty("DB_URL", dbUrl); // } catch (Exception e) { // e.printStackTrace(); // 输出异常信息 // } // } /** * 功能:获取连接的语句 * * @return */ public static Connection getConnection() { Connection conn = null; try { // 连接数据库时可能发生异常因此需要捕捉该异常 Class.forName(dbClassName).newInstance(); // 装载数据库驱动 conn = DriverManager.getConnection(dbUrl); // 建立与数据库URL中定义的数据库的连接 } catch (Exception ee) { ee.printStackTrace(); // 输出异常信息 } if (conn == null) { System.err .println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:" + dbClassName + "\r\n链接位置:" + dbUrl); // 在控制台上输出提示信息 } return conn; // 返回数据库连接对象 } /* * 功能:执行查询语句 */ public ResultSet executeQuery(String sql) { try { // 捕捉异常 conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql); } catch (SQLException ex) { System.err.println(ex.getMessage()); // 输出异常信息 } return rs; // 返回结果集对象 } /* * 功能:执行更新操作 */ public int executeUpdate(String sql) { int result = 0; // 定义保存返回值的变量 try { // 捕捉异常 conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql); // 执行更新操作 } catch (SQLException ex) { result = 0; // 将保存返回值的变量赋值为0 } return result; // 返回保存返回值的变量 } /* * 功能:关闭数据库的连接 */ public void close() { try { // 捕捉异常 if (rs != null) { // 当ResultSet对象的实例rs不为空时 rs.close(); // 关闭ResultSet对象 } if (stmt != null) { // 当Statement对象的实例stmt不为空时 stmt.close(); // 关闭Statement对象 } if (conn != null) { // 当Connection对象的实例conn不为空时 conn.close(); // 关闭Connection对象 } } catch (Exception e) { e.printStackTrace(System.err); // 输出异常信息 } } } 第一次连接成功。 第二次为什么无论把这个类中的用户名和密码修改成什么都能连接上MySql了? 请问这个类中的用户名和密码有用吗? 那在哪儿修改用户名和密码后就连接不上Mysql了?
web service访问数量控制
详细功能:客户端是WPF,服务端是Web Service(C#),客户端请求查询服务器端是否有更新的版本,若有则下载更新。 开发工具:VS2013,在管理员权限下运行。 开发及测试环境:IIS6.0,电脑内核数量为4,逻辑处理器数量为8。 相关参数设置:IIS管理器下设置-应用程序池-网站的最大工作进程数为默认值1.客户端与Web Service的超时时间都是120秒。测试用的更新包大小为3101KB。采用log4net在服务器端记录日志。 问题描述:由于最终将发布在远程服务器上,带宽有限制,120秒的时间内,最多只能保证大约23个请求成功下载,其他的请求不可能成功。【计算方法:带宽*120秒/3101KB=25个。并且经测试,几乎都是保持在23个请求可以成功下载更新。(附:远程服务器环境为核心数2,线程数2,IIS6.0)】 于是想用Application["CountOnline"]来统计正在请求下载的客户端数量,假设这个数量已经超过了23,如果再有新的下载请求,那么就立刻返回“服务器忙”异常消息;否则就下载更新。每有一次连接请求,那么Application["CountOnline"]值加1;请求结束之后,Application["CountOnline"]值减1。采用多线程同时请求下载来模拟多客户端进行测试。 1、把web service发布到本地的开发机器的虚拟目录下,发现Application["CountOnline"]的值最大为3,根本不能突破3。注:本地环境下测试,无带宽限制。把Web Service发布到远程服务器上,Application["CountOnline"]最大为1。 2、若不发布web service,直接在WPF项目下,添加服务引用——发现“解决方案下的服务”,然后运行测试代码,发现Application["CountOnline"]的值最大可以达到8. 3、修改IIS管理器下设置-应用程序池-网站的最大工作进程数为10,此时若再引用本地的虚拟目录下的服务,Application["CountOnline"]的最大值依然是3,并且由于是最大工作进程数的限制变为10,导致记录的日志信息不完全。同样的,服务器端Application["CountOnline"]最大值依然是1. Web Service主要代码如下: [WebMethod(Description = "", EnableSession = true)] public byte[] LoadFile(string software) { string filePath = Server.MapPath("Software/") + software; FileStream fs = null; if (File.Exists(filePath)) { try { log.Info(String.Format("线程{0}进入请求时候,Application[\"count\"]:{1}", System.Threading.Thread.CurrentThread.ManagedThreadId, Application["CountOnline"])); if (!(Application["CountOnline"] == null || (int)Application["CountOnline"] <= 23)) { throw new SoapException("服务器正忙,请稍后再试!", SoapException.ServerFaultCode); } fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); return ConvertStreamToByteBuffer(fs); } catch (SoapException ex) { log.Error(String.Format("---------请求已经达到最大限度。")); throw new SoapException("服务器正忙,请稍后再试!", SoapException.ServerFaultCode); } catch (Exception ex) { log.Error(String.Format("异常消息:{0}{1}堆栈:{2}{0}相关内容:{3}", ex.Message, Environment.NewLine, ex.StackTrace, ex.ToString())); throw new SoapException(ex.ToString(), SoapException.ServerFaultCode); } finally { if(fs!=null) { fs.Flush(); fs.Close(); } log.Info(String.Format("线程{0}执行完毕离开时候,Application[\"count\"]:{1}", System.Threading.Thread.CurrentThread.ManagedThreadId, Application["CountOnline"])); Session.Abandon(); } } else { log.Error(filePath + "文件不存在"); throw new SoapException(filePath + "文件不存在", SoapException.ServerFaultCode); } } public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { if (Application["CountOnline"] == null) { Application["CountOnline"] = 0; } log4net.Config.XmlConfigurator.Configure(new FileInfo("Log4net.config")); } protected void Session_Start(object sender, EventArgs e) { Application.Lock(); int countOnline = (int)Application["CountOnline"]; countOnline++; Application["CountOnline"] = countOnline; Application.UnLock(); } protected void Session_End(object sender, EventArgs e) { Application.Lock(); int countOnline = (int)Application["CountOnline"]; countOnline--; Application["CountOnline"] = countOnline; Application.UnLock(); } } 客户端测试代码主要如下: try { for (int i = 0; i <100; i++) { ThreadWithState tws = new ThreadWithState(i); Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } public class ThreadWithState { private int i; public ThreadWithState( int number) { i = number; } public void ThreadProc() { try { BasicHttpBinding binding = new BasicHttpBinding(); ServiceReference1.WebService1SoapClient ws; binding.MaxReceivedMessageSize = 2147483647; binding.MaxBufferPoolSize = 2147483647; binding.CloseTimeout = new TimeSpan(0,0,120); binding.SendTimeout = new TimeSpan(0, 0, 120); ws = new ServiceReference1.WebService1SoapClient(binding, new EndpointAddress(new Uri("http://192.168.1.91:81/WebService1.asmx"))); System.Diagnostics.Stopwatch spw = new System.Diagnostics.Stopwatch(); spw.Start(); ws.Open(); byte[] file = ws.LoadFile("*****文件名****"); spw.Restart(); string time = System.DateTime.Now.ToString("_yyyy-MM-dd HH-mm-ss_ffff"); string downPath = @"c:\download\" + i + "" + time + ".zip"; FileStream fs = new FileStream(downPath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite); fs.Write(file, 0, file.Length); fs.Flush(); fs.Dispose(); ws.Abort(); ws.Close(); Console.WriteLine(i + ",写入磁盘完成耗时:" + spw.ElapsedMilliseconds + ",线程id:" + System.Threading.Thread.CurrentThread.ManagedThreadId); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } 每一个新的请求,那么服务端应该都会新开一个线程,为什么我的服务器端的Application["CountOnline"]始终没有什么变化呢。我猜想是不是IIS或者还有哪个地方没有设置呢?还是我的代码有问题?已经在百度上面查询了好久,没有找到答案。请大家帮忙看看。
linux(centos)下 java web项目串口编程部分用rxtx包获取不到串口
我在win将项目导成war包放在linux下tomcat路径下运行,别的功能都好,唯独获取不到串口。 我是root权限登录,且试了很多方法如图,给uucp和lock组都添加了权限也没有 报错如图 ![图片说明](https://img-ask.csdn.net/upload/201703/07/1488876061_276341.png) 我更改的group文件如下 ![图片说明](https://img-ask.csdn.net/upload/201703/07/1488876089_85702.png) 程序如下,我将这段程序单独做小应用在linux下的eclipse跑起来就可以获取到串口,证明程序应该无误。不知道为什么还是没有权限 求各位大神帮帮忙,给点思路,谢谢大家了 ![图片说明](https://img-ask.csdn.net/upload/201703/07/1488876209_919881.png)
请教怎么在CAS中添加验证码功能
公司项目要用到单点登录,根据linliangyi2007的CAS学习笔记初步掌握了CAS的使用,现在碰到一个问题就是我需要在CAS登录界面使用验证码,目前页面显示验证码和表单提交的时候获取用户输入的验证码都没有问题,但就是无法取到在Session中保存的验证码,请问该怎么处理? [b]问题补充:[/b] 问题可能描述得不清楚,这里补充一下: 假设应用服务器是A,CAS在B上,客户端是C 当我用C去访问A时,转向到B去做登录,这时B转向login页面,要求用户输入账号和密码,由于项目要求,登录页面必须提供验证码功能,我的想法是这样的: 1、修改cas_server_webapp,添加一个产生验证码的servlet。 2、修改登录页面的表单,显示验证码和提供验证码输入框。 3、新建一个类,继承Credentials接口,与UsernamePasswordCredentials类似,增加了一个验证码的字段 4、新增一个AuthenticationHandler,与SimpleTestUsernamePasswordAuthenticationHandler类似,在验证用户名和密码前,先验证验证码是否正确。 5、修改相关配置文件,使用新的Credentials和AuthenticationHandler。 所以在整个过程中,其实是与A无关的,这里面的Session,就是B的Session,用户在访问登录界面的时候,产生验证码的servlet会把验证码保存在B的session里面,但我不知道怎么在AuthenticationHandler能访问到session,以便把之前保存的验证码与用户输入的做比较。 [b]问题补充:[/b] 还没有找到如何在AuthenticationHandler中获取session的办法,因此也就没有写一个filter来解决验证码验证的问题,目前我的解决做法是重写了org.jasig.cas.web.flow.AuthenticationViaFormAction类,在submit方法中对验证码做了处理,感觉是恶心了一点,不过暂时能达到我的目的了. 的确最好的做法是加多一层filter来验证验证码.
SSH框架项目中文乱码问题,数据插入mysql数据库后,就是??了
**本人刚接触SSH框架项目,一个人自学,会遇到一些个人解决不了的问题,希望寻找志同道合之人一起学习互勉! 如果有师傅带带我必感激不尽! 我对计算机互联网等方面有自己的见解,也十分有热情,喜爱结识志同道合之人,我的QQ:1667134630** 在数据库中手动加两条数据,在浏览器中显示中文是没问题的 ![](https://img-ask.csdn.net/upload/201611/05/1478359436_545746.png) ![图片说明](https://img-ask.csdn.net/upload/201611/05/1478359396_234661.png) 但是点击修改,保存之后就是?了 ![图片说明](https://img-ask.csdn.net/upload/201611/05/1478359659_576831.png) ![图片说明](https://img-ask.csdn.net/upload/201611/05/1478359706_671376.png) 数据库中也变成?了 ![图片说明](https://img-ask.csdn.net/upload/201611/05/1478359759_510580.png) 以下是代码 # list.jsp ``` <%@ page language="java" import="java.util.*" pageEncoding="utf-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>岗位列表</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/DataShowManager.js" charset="utf-8"></script> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> <script type="text/javascript"> </script> </head> <body> <div id="Title_bar"> <div id="Title_bar_Head"> <div id="Title_Head"></div> <div id="Title"><!--页面标题--> <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 岗位管理 </div> <div id="Title_End"></div> </div> </div> <div id="MainArea"> <table cellspacing="0" cellpadding="0" class="TableStyle"> <!-- 表头--> <thead> <tr align="CENTER" valign="MIDDLE" id="TableTitle"> <td width="200px">岗位名称</td> <td width="300px">岗位说明</td> <td>相关操作</td> </tr> </thead> <!--显示数据列表--> <tbody id="TableData" class="dataContainer" datakey="roleList"> <s:iterator value="list"> <tr class="TableDetail1 template"> <td>${name} </td> <td>${description} </td> <td><s:a onclick="return window.confirm('确定删除当前记录吗?')" action="role_delete?id=%{ id }" namespace="">删除</s:a> <s:a action="role_editUI?id=%{ id }" namespace="">修改</s:a> <s:a href="setPrivilegeUI.html">设置权限</s:a> </td> </tr> </s:iterator> </tbody> </table> <!-- 其他功能超链接 --> <div id="TableTail"> <div id="TableTail_inside"> <a href="saveUI.html"><img src="${pageContext.request.contextPath}/style/images/createNew.png" /></a> </div> </div> </div> </body> </html> ``` # edit.jsp ``` <%@ page language="java" import="java.util.*" pageEncoding="utf-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>岗位设置</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/DataShowManager.js" charset="utf-8"></script> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> <script type="text/javascript"> </script> </head> <body> <!-- 标题显示 --> <div id="Title_bar"> <div id="Title_bar_Head"> <div id="Title_Head"></div> <div id="Title"><!--页面标题--> <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 岗位设置 </div> <div id="Title_End"></div> </div> </div> <!--显示表单内容--> <div id="MainArea"> <s:form action="role_edit" namespace="/" method="post"> <s:hidden name="id"></s:hidden> <div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1"> <IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 岗位信息 </DIV> --> </div> <!-- 表单内容显示 --> <div class="ItemBlockBorder"> <div class="ItemBlock"> <table cellpadding="0" cellspacing="0" class="mainForm"> <tr> <td width="100">岗位名称</td> <td> <s:textfield name="name" cssClass="InputStyle"></s:textfield> * </td> </tr> <tr> <td>岗位说明</td> <td> <s:textarea name="description" cssClass="TextareaStyle"></s:textarea> </td> </tr> </table> </div> </div> <!-- 表单操作 --> <div id="InputDetailBar"> <input type="image" src="${pageContext.request.contextPath}/style/images/save.png"/> <a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/style/images/goBack.png"/></a> </div> </s:form> </div> </body> </html> ``` # web.xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 通过上下文参数指定spring配置文件的位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <!-- 配置spring的上下文载入器监听器 ,项目启动时加载spring --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置struts2的前端控制器 --> <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> ```
求助:无法使用JAX-WS开发webservice项目
# 问题: 在使用JAX-WS以bottom-up方式开发webservice项目时,基于某一个java**类SOSOpenAPI**创建时,报错:An internal error occurred during: "Generating JAX-WS Web Services". Unable to create JAXBContext 错误的详细信息如下: javax.xml.ws.WebServiceException: Unable to create JAXBContext at com.sun.xml.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:158) at com.sun.xml.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:87) at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:262) at com.sun.tools.ws.wscompile.WsgenTool.buildModel(WsgenTool.java:225) at com.sun.tools.ws.wscompile.WsgenTool.run(WsgenTool.java:124) at com.genuitec.eclipse.ws.jaxws.JaxWSBUJob.wsGen(JaxWSBUJob.java:229) at com.genuitec.eclipse.ws.jaxws.JaxWSBUJob.run(JaxWSBUJob.java:125) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) Caused by: java.security.PrivilegedActionException: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions java.lang.StackTraceElement does not have a no-arg default constructor. this problem is related to the following location: at java.lang.StackTraceElement at public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace() at java.lang.Throwable at private java.lang.Throwable[] jaxws.IOExceptionBean.suppressed at jaxws.IOExceptionBean at java.security.AccessController.doPrivileged(Native Method) at com.sun.xml.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:148) ... 7 more Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions java.lang.StackTraceElement does not have a no-arg default constructor. this problem is related to the following location: at java.lang.StackTraceElement at public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace() at java.lang.Throwable at private java.lang.Throwable[] jaxws.IOExceptionBean.suppressed at jaxws.IOExceptionBean at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:102) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:438) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:286) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139) at com.sun.xml.bind.api.JAXBRIContext.newInstance(JAXBRIContext.java:105) at com.sun.xml.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:153) at com.sun.xml.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:149) ... 9 more ** SOSOpenAPI.java**代码如下: import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.OutputStream; import java.util.zip.GZIPOutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; import org.w3c.dom.Document; import org.xml.sax.SAXException; import com.sensorweb.sos.request.RequestOperator; import com.sensorweb.sos.response.ISosResponse; /** * WebService入口函数 * * */ public class SOSOpenAPI { private DocumentBuilderFactory docBuildFactory; //XML解析工厂类 private RequestOperator reop; //请求操作类 /** 无参数构造函数 */ public SOSOpenAPI() { this.docBuildFactory = DocumentBuilderFactory.newInstance(); this.docBuildFactory.setNamespaceAware(true); this.reop = new RequestOperator(); } /** SOSService中的核心方法 * 该方法在使用SOSService中的功能时被调用 * 通过inputString返回相应的响应结果 * @param inputString String * @return result byte[] * * */ public byte[] getResponse(String inputString) throws IOException { ISosResponse sosResp = null; //存放响应结果 Document fullRequestDoc = null; //存储解析的XML请求 byte[] bytes = null; //以字节数组的形式存储最后结果 try { synchronized (this.docBuildFactory) { DocumentBuilder docBuilder = this.docBuildFactory .newDocumentBuilder(); fullRequestDoc = docBuilder.parse(new ByteArrayInputStream( inputString.getBytes())); } } catch (ParserConfigurationException pce) { System.out.println("Error while parsing request!" + pce); } catch (SAXException saxe) { System.out.println("Error while parsing request!" + saxe); } fullRequestDoc.getDocumentElement().normalize(); sosResp = this.reop.doPostOperation(inputString);//调用全局变量reop的doPostOperation方法 OutputStream out = null; GZIPOutputStream gzip = null; ContentRs cr = new ContentRs(); try { String contentType = sosResp.getContentType(); int contentLength = sosResp.getContentLength(); bytes = sosResp.getByteArray();//将响应结果转化为字节数据存储 } catch (IOException ioe) { } catch (TransformerException ioe) { } return bytes; //返回结果 } } ``` ``` 而使用与SOSOpenAPI.java在同一包下的**ContentRs.java**作为基类就可以创建webservice,**ContentRs.java**的代码如下: /** * 该类是一个JavaBean,用于存储最后返回的结果 * */ public class ContentRs { private String contentType; //返回结果的类型 private int contentLength; //返回结果的大小 private byte[] bytes; //返回的结果 public String getContentType() { return contentType; } public void setContentType(String contentType) { this.contentType = contentType; } public int getContentLength() { return contentLength; } public void setContentLength(int contentLength) { this.contentLength = contentLength; } public byte[] getBytes() { return bytes; } public void setBytes(byte[] bytes) { this.bytes = bytes; } } ``` ``` # 已做的尝试: 更改项目的jdk为jdk1.8.0和jdk1.7.0时,仍然报错 # 求助: 哪位前辈对此类问题有解决方案,求指导啊
网上下载的项目-导入ssm小米商城的后台项目访问登录界面login的时候无法跳转到其他页面是怎么回事?
在网上下载的ssm小米商城的后台项目 1:项目没有错误,,, 2:在访问登录界面login的时候- 却无法跳转到其他页面 3:数据库不知道是不是正常 4:我的数据库设置了管理员登录:admin 密码123456 5: 写了个generatorConfig.xml 6:::新增:看到有人回复说数据库的名字没有改: 我用的是mysql 数据库名是:shop 密码是:1234 userId我不知道是要赋值什么值,,一般不是userName吗??但是这个项目中的确实userId ,,所以我也给他 赋值了数据库的用户名 “root”但是这样配置根本就没有用,,同样无法跳转页面:::: 如果配置错了,,麻烦指出来,,非常感谢,,新手新手,,实力有限抱歉 求大神帮助,,,呜呜,,还是跳转不了 数据库图片: ![图片说明](https://img-ask.csdn.net/upload/201812/26/1545786449_770158.png) 数据库配置图: ![图片说明](https://img-ask.csdn.net/upload/201812/26/1545786860_325497.png) 按照网友提出的问题:修改数据库名和密码: 我把connectionURL 的 work_attendance也改成了shop,, 如下: //connectionURL="jdbc:mysql://localhost:3306/work_attendance" connectionURL="jdbc:mysql://localhost:3306/shop" <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shop" userId="root" password="1234"> </jdbcConnection> 但是还是没有用,,,依然无法跳转,,总感觉没有错误,,,不知道错在哪了。。。。,,,,大神,,大神们求帮助中 代码如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!--classPathEntry:数据库的JDBC驱动 --> <!-- location="D:\Develop\MvnRepo\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/> --> <classPathEntry location="D:\Users\lydia\workspaceSSH\shopCMS\src\main\webapp\WEB-INF\lib\mysql-connector-java-5.1.34.jar"/> <context id="MysqlTables" targetRuntime="MyBatis3"> <!-- 注意这里面的顺序确定的,不能随变更改 --> <!-- 自定义的分页插件 <plugin type="com.deppon.foss.module.helloworld.shared.PaginationPlugin"/> --> <!-- 可选的(0 or 1) --> <!-- 注释生成器 --> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 必须的(1 required) --> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 connectionURL="jdbc:mysql://localhost:3306/work_attendance" --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shop" userId="root" password="1234"> </jdbcConnection> ,, 登录界面 ![图片说明](https://img-ask.csdn.net/upload/201812/24/1545659180_616623.jpg) 每次一点击登录: console界面就显示: [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:845) DispatcherServlet with name 'SpringMVC' processing POST request for [/shopCMS/login/check] [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:297) Looking up handler method for path /login/check [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:302) Returning handler method [public java.lang.String com.shop.shopmanager.controller.LoginController.checkLogin(javax.servlet.http.HttpServletRequest) throws java.io.UnsupportedEncodingException,java.security.NoSuchAlgorithmException] [DEBUG][2018-12-24 21:47:08] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248) Returning cached instance of singleton bean 'loginController' [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:104) Creating a new SqlSession [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:140) SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7738ee46] was not registered for synchronization because synchronization is not active [DEBUG][2018-12-24 21:47:08] org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:110) Fetching JDBC Connection from DataSource [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:86) JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@41131e6d] will not be managed by Spring [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) ==> Preparing: SELECT cu.user_id AS user_id4, login_name, login_password, salt, user_name, real_name, sex, age, pic_img, cu.`status` AS status4, email, telephone, cu.create_time AS create_time4, cu.update_time AS update_time4, cr.role_id AS role_id2, role_name, role_sign, is_system, cr.`status` AS status2, cr.create_time AS create_time2, cr.update_time AS update_time2, cr.remarks AS remarks2, cm.menu_id AS menu_id1, parent_id, menu_type, menu_code, menu_name, sort, href, icon, cm.`status` AS status1, permission, cm.create_time AS create_time1, cm.update_time AS update_time1, cm.remarks AS remarks1 FROM cms_menu cm, cms_role cr, cms_role_menu crm, cms_user cu, cms_user_role cur WHERE crm.role_id = cr.role_id AND crm.menu_id = cm.menu_id AND cur.user_id = cu.user_id AND cur.role_id = cr.role_id AND cu.login_name = ?; [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) ==> Parameters: admin(String) [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) <== Total: 73 [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:168) Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7738ee46] [DEBUG][2018-12-24 21:47:08] org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:327) Returning JDBC Connection to DataSource [DEBUG][2018-12-24 21:47:08] org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:569) Looked up AuthenticationInfo [admin] from doGetAuthenticationInfo [DEBUG][2018-12-24 21:47:08] org.apache.shiro.realm.AuthenticatingRealm.cacheAuthenticationInfoIfPossible(AuthenticatingRealm.java:507) AuthenticationInfo caching is disabled for info [admin]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false]. [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:104) Creating a new SqlSession [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:140) SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@33b81d6e] was not registered for synchronization because synchronization is not active [DEBUG][2018-12-24 21:47:08] org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:110) Fetching JDBC Connection from DataSource [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:86) JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@41131e6d] will not be managed by Spring [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) ==> Preparing: SELECT cu.user_id AS user_id4, login_name, login_password, salt, user_name, real_name, sex, age, pic_img, cu.`status` AS status4, email, telephone, cu.create_time AS create_time4, cu.update_time AS update_time4, cr.role_id AS role_id2, role_name, role_sign, is_system, cr.`status` AS status2, cr.create_time AS create_time2, cr.update_time AS update_time2, cr.remarks AS remarks2, cm.menu_id AS menu_id1, parent_id, menu_type, menu_code, menu_name, sort, href, icon, cm.`status` AS status1, permission, cm.create_time AS create_time1, cm.update_time AS update_time1, cm.remarks AS remarks1 FROM cms_menu cm, cms_role cr, cms_role_menu crm, cms_user cu, cms_user_role cur WHERE crm.role_id = cr.role_id AND crm.menu_id = cm.menu_id AND cur.user_id = cu.user_id AND cur.role_id = cr.role_id AND cu.login_name = ?; [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) ==> Parameters: admin(String) [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) <== Total: 73 [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:168) Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@33b81d6e] [DEBUG][2018-12-24 21:47:08] org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:327) Returning JDBC Connection to DataSource 原密码:123456Dts7jk 加密之后的密码为:lZQ/OoEBjTylEoEfxoyWeQ== [DEBUG][2018-12-24 21:47:08] org.apache.shiro.web.servlet.SimpleCookie.addCookieHeader(SimpleCookie.java:226) Added HttpServletResponse Cookie [rememberMe=deleteMe; Path=/shopCMS; Max-Age=0; Expires=Sun, 23-Dec-2018 13:47:08 GMT] [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdviceChain.invoke(ResponseBodyAdviceChain.java:61) Invoking ResponseBodyAdvice chain for body=login_fail [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdviceChain.invoke(ResponseBodyAdviceChain.java:83) After ResponseBodyAdvice chain body=login_fail [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:163) Written [login_fail] as "text/plain;charset=ISO-8859-1" using [org.springframework.http.converter.StringHttpMessageConverter@395cf6a4] [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1018) Null ModelAndView returned to DispatcherServlet with name 'SpringMVC': assuming HandlerAdapter completed request handling [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:996) Successfully completed request [DEBUG][2018-12-24 21:47:08] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248) Returning cached instance of singleton bean 'sqlSessionFactory' [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:845) DispatcherServlet with name 'SpringMVC' processing GET request for [/shopCMS/login] [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:297) Looking up handler method for path /login [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:302) Returning handler method [public java.lang.String com.shop.shopmanager.controller.LoginController.login()] [DEBUG][2018-12-24 21:47:08] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248) Returning cached instance of singleton bean 'loginController' [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:931) Last-Modified value for [/shopCMS/login] is: -1 [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225) Rendering view [org.springframework.web.servlet.view.JstlView: name 'login'; URL [/WEB-INF/views/login.jsp]] in DispatcherServlet with name 'SpringMVC' [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:166) Forwarding to resource [/WEB-INF/views/login.jsp] in InternalResourceView 'login' [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:996) Successfully completed request [DEBUG][2018-12-24 21:47:08] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248) Returning cached instance of singleton bean 'sqlSessionFactory' ``` ``` 我的数据库中有admin和密码 123456,,但是就是无法跳转到登录后的页面希望大佬能帮我看看是什么原因》》》 ------------------------------------ 后续添加,,,,麻烦大佬结合上述和下述看看是什么问题,,拜托拜托, 1:数据库用户表信息: ![图片说明](https://img-ask.csdn.net/upload/201812/28/1545962958_570862.png) 2:我的项目结构: ![图片说明](https://img-ask.csdn.net/upload/201812/28/1545962858_134226.png) 3:以下是登录控制器“LoginController”的代码: package com.shop.shopmanager.controller; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.shop.shopmanager.service.CmsUserService; /** * @Author 康健 * @Date 2017/8/14 14:54 */ @Controller @RequestMapping("login") public class LoginController { @Autowired private CmsUserService cmsUserService; /** * @Author JackWang [www.coder520.com] * @Date 2017/6/18 12:47 * @Description 登录页面 */ @RequestMapping public String login() { return "login"; } /** * @Author JackWang [www.coder520.com] * @Date 2017/6/18 12:47 * @Description 校验登录 */ @RequestMapping("/check") @ResponseBody public String checkLogin(HttpServletRequest request) throws UnsupportedEncodingException, NoSuchAlgorithmException { String username = request.getParameter("username"); String pwd = request.getParameter("password"); UsernamePasswordToken token = new UsernamePasswordToken(username, pwd); // token.setRememberMe(true); Subject subject = SecurityUtils.getSubject(); try { subject.login(token); SecurityUtils.getSubject().getSession().setTimeout(1800000); } catch (Exception e) { return "login_fail"; } return "login_succ"; } /* @RequestMapping("/register") @ResponseBody public String register(@RequestBody User user) throws UnsupportedEncodingException, NoSuchAlgorithmException { userService.createUser(user); return "succ"; }*/ } 4:UsernamePasswordToken 我没有这个类,这好像是一个方法-------网上好像说这是个认证机制,,不知道跳转不了跟这个有没有关系 网上解释:是最常见的用户名/密码的认证机制;同时,由于它实现了RememberMeAuthenticationToken接口,我们可以通过令牌设置“记住我”的功能。 但是,“已记住”和“已认证”是有区别的: 已记住的用户仅仅是非匿名用户,你可以通过subject.getPrincipals()获取用户信息。但是它并非是认证通过的用户,当你访问需要认证用户的功能时,你仍然需要重新提交认证信息。 这一区别可以参考淘宝网站,网站会默认记住登录的用户,再次访问网站时,对于非敏感的页面功能,页面上会显示记住的用户信息,但是当你访问网站账户信息时仍然需要再次进行登录认证。 5: 我的自定义数据库配置“jdbc.properties”: driverClassName=com.mysql.jdbc.Driver validationQuery=SELECT 1 jdbc_url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false jdbc_username=root jdbc_password=1234 6:"generatorConfig.xml" 这个就是上面的数据库驱动的配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!--classPathEntry:数据库的JDBC驱动 --> <!-- location="D:\Develop\MvnRepo\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/> --> <classPathEntry location="D:\Users\lydia\workspaceSSH\shopCMS\src\main\webapp\WEB-INF\lib\mysql-connector-java-5.1.34.jar"/> <context id="MysqlTables" targetRuntime="MyBatis3"> <!-- 注意这里面的顺序确定的,不能随变更改 --> <!-- 自定义的分页插件 <plugin type="com.deppon.foss.module.helloworld.shared.PaginationPlugin"/> --> <!-- 可选的(0 or 1) --> <!-- 注释生成器 --> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 必须的(1 required) --> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 connectionURL="jdbc:mysql://localhost:3306/work_attendance" --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shop" userId="root" password="1234"> </jdbcConnection> <!-- 可选的(0 or 1) --> <!-- 类型转换器或者加类型解析器 --> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 必须的(1 required) --> <!-- java模型生成器 --> <!-- targetProject:自动生成代码的位置 --> <javaModelGenerator targetPackage="com.coder520.user.entity" targetProject="D:\Develop\IDEAWorkPlace\work-attendance\src\main\java" > <!--TODO enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="true"/> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 必须的(1 required) --> <!-- map xml 生成器 <sqlMapGenerator targetPackage="com.coder520.user.dao" targetProject="D:\Develop\IDEAWorkPlace\work-attendance\src\main\java"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> --> <sqlMapGenerator targetPackage="com.coder520.user.dao" targetProject="D:\Users\lydia\workspaceSSH\shopCMS\src\main\java"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 可选的(0 or 1) --> <!-- mapper 或者就是dao接口生成器 --> <javaClientGenerator targetPackage="com.coder520.user.dao" targetProject="D:\Users\lydia\workspaceSSH\shopCMS\src\main\java" type="XMLMAPPER"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 必须的(1...N) --> <!-- pojo 实体生成器 --> <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 --> <!-- schema即为数据库名 可不写 --> <table tableName="role" domainObjectName="Role" enableInsert="true" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <!-- 忽略字段 可选的(0 or 1) --> <!-- <ignoreColumn column="is_use" /> --> <!--//无论字段是什么类型,生成的类属性都是varchar。 可选的(0 or 1) 测试无效 --> <!-- <columnOverride column="city_code" jdbcType="VARCHAR" /> --> </table> <table tableName="permission" domainObjectName="Permission" enableInsert="true" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <!-- 忽略字段 可选的(0 or 1) --> <!-- <ignoreColumn column="is_use" /> --> <!--//无论字段是什么类型,生成的类属性都是varchar。 可选的(0 or 1) 测试无效 --> <!-- <columnOverride column="city_code" jdbcType="VARCHAR" /> --> </table> </context> </generatorConfiguration> 万分感谢大佬,,,,,帮我解决这问题我就认你当师傅,,,大佬 ,,拜托了,,,还需要什么麻烦留下言哈
Grails 应用的迷惑
最初在INFOQ上看见了 Grails 的文章 PDF ,照着下面的东西搭建了一下,感觉还不错,的确是飞速提升了开发的效率,不过类似 Grails 这样的东西好在应用系统,或者 WEB 项目中实施么?我比较关心的问题是: 1.应用 Ajax 好返回 XML/JSON 对象么? ----> 返回的不是一个请求转发而是一段文本。 2.就拿个简单的功能来说,好做分页么? ----> 原因要修改不少SRC下的代码 3.前端界面如果我想改变,采用 DIV+CSS,或者类似于 iframe 的上左右的布局,好修改么? -----> 界面上貌似用了很多标签和TAB布局。不喜欢~~~~~~ V_V. 因为这些东西,虽然针对领域模型已经一句话可以生成所有的增删改查代码,可是在封装的基础上,感觉很细致,同时也很精密。就怕随便改点点东西,就异常了,前端页面中,很多布局肯定不是基于我们常有的系统界面的,需要做很打程度的改变,那么对界面上的改变是否是非常的难以实现呢 ? 请用过 Grails 做过实施的大牛,回答下我的问题,谢谢。
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
只因接了一个电话,程序员被骗 30 万!
今天想给大家说一个刚刚发生在我身边的一起真实的诈骗经历,我的朋友因此被骗走30万。注:为了保护当事人隐私,部分情节进行了修改。1平安夜突来的电话开始以为就像普通的诈骗一样,想办法让你把钱...
我一个37岁的程序员朋友
周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 30 岁了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
【程序人生】程序员接私活常用平台汇总
00. 目录 文章目录00. 目录01. 前言02. 程序员客栈03. 码市04. 猪八戒网05. 开源众包06. 智城外包网07. 实现网08. 猿急送09. 人人开发10. 开发邦11. 电鸭社区12. 快码13. 英选14. Upwork15. Freelancer16. Dribbble17. Remoteok18. Toptal19. AngelList20. Topcoder21. ...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
立即提问