黄金矿工--成长之路 (有关浏览器中文,传入后台乱码的问题)

今天自己写了一个页面登陆的功能,当然是不完善的,只是写了极为简单的一种,然后就卡住了。写不下去了。
然后晚上的时候,自己一遍遍尝试又弄明白不少知识,现在把他们给再回想一遍。加深记忆。

人啊,真的是会遗忘的,我掌握了很多知识,但是需要用到的时候 ,就忘记了。比如我今天去做java面试题。第一个问题问的是什么是java面向对象的六大原则,一法则。我当时看到的时候一喜。这个题目我会啊。我背过的。但是话到嘴边。一个字都吐不出来了。因为,全都忘了。这就像是一个MAP 我记得了key 却把值全都给忘记了。这还玩个球啊。不过我要是真的能不会遗忘。那么我或许早已是一个天才科学家了吧。可惜我不是。人只有反复的练习,才会掌握这些东西知识成为本能,这很难很难,如果你没有做到这一步的话,你迟早是会遗忘的。我只希望我记的能够更长久一些。让我能够在我的职业生涯靠此进行存活。
java面向对象的六原则,一法则。
原则:
1单一职责原则:即一个类只做一件事情;
2开放关闭原则:即一个软件实体,如类,模块。对其扩展开放,对修改关闭。
3依赖倒换原则:即设计要依赖于抽象而不是具体化;
4里氏替换原则:即子类必须能够替换其父类,否者子类的存在毫无意义;
5接口隔离原则:即接口要小而专,不要大而全;
6组合/聚合复用原则:即使用组合聚合,少使用继承来实现复用的原则;
而一大法则就简单了,脍炙人口:即 低耦合 高内聚;

我写页面登陆功能的时候,遗忘了很多知识点,以至于我不能写出来一个完整的功能代码。中间老是出现断层。
form提交表单的时候,可以提交到一个action中,这个action可以是springmvc中的controller,也可以是struts2中的action中,提交到这些中之后,与后台进行交互。这是我本来就会的一些。不过有些类方法用的还是不好,甚至有时候根本就用错了~~

今天是发现了form提交表单的时候可以直接提交到另一个jsp中,这样的话,就不用一些中间的过程了,直接去省去了,进行跳转页面,但是不是白白省去的。你该写的代码还是要写在jsp中,说到这里,在jsp中写代码我学过,但是忘了。现在又想起来了了。嘿嘿,网上查询回忆啊。想要在jsp中写代码,你就要在这个中间写<%%>,如果你想输出什么,你就得用这个<%=%> 还有一个特殊用法就是这个 <%!%>,说是用来声明函数的,但是具体什么意思我是不知道的,大概是进行赋值这样的方法吧。毕竟方法体不也就是函数体吗!
除此之外最重要的是,我一直都拿不到表单提交的值,这让我一度怀疑,我是否是选择了一个正确的方式去进行尝试。最后来来回回的尝试了很多次。才知道,既然能传,那么就能拿到,但是这是相当于把java代码直接写在jsp中,所以这一部分是java代码负责的,所以只能在<%%>中用这个 request.getParameter(“参数名”);来得到这个值。就这么一句代码就能得到值,就这么简单,然后我给其在第二个jsp页面显示出来,但是问题来了,在显示的时候,页面编码,包括我的那个idea设置的都是UTF-8的编码方式,但是还是出现了乱码的情况,那么这就很稀奇了,最后让我知道了原因,其实我早就知道了,但是我给忘了。卧槽,记忆啊。果然是我最大的敌人。那就是虽然你的页面编码。工具编码,和浏览器编码都是一样的都是UTF-8,但是,request在接收值的时候,因为这个底层的实现是老外写的,那么他默认用的编码不是utf-8,而是ios–。所以会导致了乱码的情况,真的是不容易检查,也不容易知道,问题很隐蔽啊。但是非常好解决。两行代码即可
1 request.setCharacterEncoding(“UTF-8”);
2 response.setContentType(“text/html;charset=UTF-8”);
然后你就会发现正常了。呵呵哒。
还有没有我没想起来的东西了。
自己手写的东西记忆很深刻。今天其实还看了书,看了视频,但是没什么具体的收获好像,但是大体上的东西还是有一点,依旧朦朦胧胧!

还有一种好的方法,就是在web.xml中配置一个过滤器,我觉得这是最好的方法,如下图!

<!--配置字符编码过滤器,使得页面传入数据库的数据不会出现乱码问题!一劳永逸-->
<!-- 编码Filter 加载配置 Start -->
<filter>
    <filter-name>SetCharacterEncoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>SetCharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

猜你喜欢

转载自blog.csdn.net/hjkuanggong/article/details/88833690