这个学期有门课叫“应用集成与数据集成”
要做一个学生信息管理系统,要求是有基本的增删改查功能,额外功能自选,要把jsp和servlet分开写,因为jsp是里面写的是脚本语言,不能调试。
另外要求所有信息都是数据库里面的,并且是2个数据库里面都有一个学生表,将合并显示在页面上,要用到中间件xml来完成。
关于系统的代码什么的我就不说了,网上有很多教程,推荐大家看这个:
http://www.readjava.cn/article/detail/34
不是做广告,我刚开始学的时候就是参考的这个。
这里把我对整个流程的一些心得罗列一下:
1,jsp不是js
JS:JavaScript 而 JSP:Java Server Pages,前者是做页面交互动画的,后者是需要解释编译,还要在服务器上比如tomcat才能运行。
2,网页制作的三要素是html + css + js
而我说的jsp+servlet做的是动态网页,其中servletervlet是.java文件,里面是控制流程,就像这样:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");//从网页获取到输入的信息
String userName = req.getParameter("userName");
String passWord = req.getParameter("passWord");
boolean link = DbUtil.setlogin(userName, passWord);
if(link) req.getRequestDispatcher("/list").forward(req, resp);
else {
req.setAttribute("msg","用户名或密码错误,请检查后重新登陆!");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}
在这里面获取jsp页面传过来的信息,然后可以调用自己写的其他函数执行,把函数的返回值加以判断(比如删除是否成功),然后把信息再传给jsp页面(比如页面一行行显示数据库的内容)。
3,jsp和servlet理论上是多对多关系
就是多个servlet实现不同的功能,但他们的结果的形式是一样的,那么就可以用同一个jsp来显示,当然了,你不怕麻烦的话,一个servlet可以写好多功能(不是功能的具体执行内容,而是中间获取参数的等操作)。但这样不建议,比较建议一个或多个servlet对应一个jsp。
jsp页面里面就是html代码,可以外链调用css,js等内容,不同之处在于jsp页面(后缀名.jsp)有<%内容 %>,叫做脚本片段,其中写的内容会翻译在Servlet的中,但写多了就变成了jsp和servlet混写了,这是极其不推荐的。
4,最后说一下中间件xml
如果没有中间件,要合并两个数据库里2张表的内容,那么你的sql语句得写 2份,每份里面都有表名,列名等等。那么问题在于,一旦你的数据库的表名,列名,或者属性有变,你就要改代码,这是很不安全且繁琐的,一般公司不允许这样做。
那么就用到xml,这时你的代码不用变,只需把xml改一下就好了,这就是实现与数据的分离。
那么关于xml的使用,就一句话:读文件,代码里面的信息都通过读文件来获取。
提一下,我说的xml里面的内容是表=表名,列名等等,不包括元组的内容,描述元组的内容的xml不是用来做数据集成的。
感谢你读到了最后,日常记录心得体会是个好习惯,当你许久之后再看就能很快想起来了,谢谢大家。如果大家喜欢可以来找我学习探讨。