认识一个东西用感性,学习一个东西用理性!

2023-10-04 00:59

本文主要是介绍认识一个东西用感性,学习一个东西用理性!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

美好的一天开始了!
废话真不想多说什么了,干脆就直接写点有技术含量的东西吧!(其实也没什么技术含量!)
还是要写说明一下我要做什么:这是老师的一个项目,让他的研究生在做,我们就是跟着打点酱油。简单来说,就是要操作数据库中的几张表,进行增删改查的操作,当然,这里的技术难题就是在项目我们接手时,只有需求和数据库,学长写了一个登陆,其他的就没什么了。但这不行呀,没有设计就不能编码,这是上次项目总结出的最宝贵的经验了,我们还是先做设计吧。
设计部分:
我们在一起做事也一年多了,但是仍旧没有什么规范,我们制订了一份编码规范,参考了某公司的java编程规范文档,我们商量以后,去掉了我们认为有些逗比的地方,我起草了一份规范文档,不过事实就是大家都没怎么看,然后就放在了那里,但好歹也算是有规范了,在实际的操作中一定还是有需要完善的地方,那是后话了。还有就是数据字典,数据库有十个表,但都是干嘛的,没有数据字典,那可是会出事的,五个人能达成统一意见,开玩笑也不带这样开的,没有数据字典,就是会出现矛盾,数据字典也出来了,学长老师也看过改了改,就算暂时完成了。详细设计,这很重要,现在每次在敲代码前我都会问问自己,有没有详细设计,没有设计就是会出现问题的,没有设计在项目进行一般的时候就可能重构,然后就。。。欲哭无泪呀,一定要有设计,要有经得起推敲的设计,现在方便,以后维护——无论是自己还是别人不了解项目的人上手维护——都会有极大的用处,真的呀!设计几经修改,最终定稿,暂且不说设计文档写的怎么样,在进行设计过程中我们考虑到太多细节,我们都比较不错的了解了这个项目,可以说现在站起来,讲一讲具体的流程什么还是没什么问题的。设计真的好重要!!!编码阶段,前台和后台是分开的,在这个过程中还是有值得反思的地方,偶尔会出现一点小问题,但大多还是很顺利的,设计在这方面还是应该有改进的地方,设计好重要!

技术细节:
编码过程中有许多技术方面的问题,其实是让我们很头疼,技术上,我差的太远了,技术细节总结如下吧:
网页写成jsp(开始时我们写成了html,但是学长说写成jsp,听学长的话),在jsp方面,我们小组有个大神,以前写了一个界面现在看起来没有那么漂亮的留言板,但是那个过程中,他倒是把jsp学的不错,先膜拜一下,我也是硬着头皮就开始写了,第一句话我都不懂:
<span style="font-size:18px;"><%String path = request.getContextPath();//返回站点的跟路径String basePath = request.getScheme() + "://" //返回协议名称+ request.getServerName() + ":" + request.getServerPort() //返回现实在浏览器中的主机名,后一项是返回服务器的端口号+ path + "/"; //项目名,加斜线了,下面用basePath时不用加斜线了!
%></span>

然后是引入了一堆框架的js、css文件,哦对了,我们用的是qui框架。(据说老师买过来时花了很多钱的呀!)
我刚刚学习jsp,可能下面关于jsp的东西你看着可能so easy,但是我是真的第一次接触到,请大神跳过!
jsp定义全局变量<%! String[] str%>    
jsp使用变量<%=str[0] %>    

for循环可以这样写:
<span style="font-size:18px;"><% for(int i = 0; i < end; i ++){ %><div>一段html代码</div>
<% } %></span>
然后这部分html代码就被循环了,动态网页就包含了这个意思吧!

取传过来的参数,后台传的参数
前台取<% str = (String[]) request.getAttribute("str"); %>
后台传request.setAttribute("str",str);
前台取<% str = (String[]) session.getAttribute("str"); %>
前台传<% session.setAttribute("str",str); %>
前台传javascript中 window.location.href="<%=basePath %>jsp/sensorType/showAllSensorType.jsp?page="+index;
前台后台取<% request.getParameter("page"); %>
两两组合,当然,还可以有许多其他组合,例如后台往session里面传等,以后补充,在这里没有用到,我怕写出来不能用别人还看了那就是罪过了!

还有javascript用到的东东:
<span style="font-size:18px;">//弹出小框框用于增加,小框框是一个jsp界面,不过这仅仅适用于比较少的内容,如果很多内容应该跳到另一个界面,也是我们其他模块用到的方法。
function addUnitType(){var diag = new top.Dialog();diag.Title = "增加";diag.URL = "<%=basePath %>jsp/unitType/popup/addUnitType.jsp";diag.show();
}
//用于警告弹窗确认
if(confirm("真的要删除吗?"){
}else{
}
//提交表单
document。getElementById("changeForm"+i).submit();
关闭窗口
function closeWin(){top.Dialog.close();
}</span>

java代码:(这一部分模块我参与的较少,总结仅供学习使用)
servlet:在前台发送数据后交由servlet处理
doGet里面调用doPost(request,response);
其中doPost开头两句为:
request.setCharactorEncoding("UTF-8");//设置编码方式
response.setContentType("text/html;charset=UTF-8");//使客户端浏览器区分不同种类的数据
PrintWrite out = response.getWriter();//取得PrintWrite对象,由它来写出响应至服务器的本体信息
out.print("<script language='javascript'>window.location.href='"+href+"';</script>");
out.print("<script language='javascript'>alert('该数据受保护,不可删!');window.location.href='"+href+"';</script>;");
问题是这里对javaBean的使用有问题,或者说几乎没有怎么使用,这是在下一版改主意的地方。

补充说明几个东东:
session:按照baidu的说法,这是一个时间概念,不过在需要的时候,可以用来存东西,在服务器端,因此javascript不可以改,那为什么jsp倒是可以设置session的值呢?原因是jsp在服务器端执行,在某种程度上来说,发过来的还是静态的页面,浏览器显示出来了,叫它动态网页也指的是发到浏览器端的页面是动态生成的,而不是说在浏览器端改变,当然,这些是我个人在现在这个时间这么理解的,可能有问题,有什么错误的地方还请指教!
认识一个东西用感性,学习一个东西用理性,要系统的学习,看书,看视频是好办法!突然感觉说学计算机的最好的老师是google的说法有不够严谨的地方,应该说书是老师,google是家教,在不会的情况下,找google,但是学习东西还是要看书的!!
接下来好好学习一下javascript,下篇博客估计就是javascript学习笔记吧!!
以上内容仅供学习交流使用,欢迎指出错误!
20140804

这篇关于认识一个东西用感性,学习一个东西用理性!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1023

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学