我的SSH项目之旅(8.管理员后台)
最后的部分是管理员操作
这一部分倒没遇到什么大的问题,一般的问题都可以解决。到是在最后加个登陆验证的过滤器的时候,登陆之后的ID值在有的页面总传不过去,真奇怪。
用户管理
|——列出所有用户
|——修改用户积分
|——删除用户
问题管理
|——删除问题
|——推荐问题
栏目管理
|——添加
|——删除
|——修改
|——列出
管理员
|——添加
|——删除
修改密码
这一部分的代码也没什么特别,所以也不贴出来了
无法删除中文用户?(暂且改为按ID删除)
java.lang.IllegalArgumentException: Path adminquestion.do?status=list does not start with a "/" character
原来是个小问题 这块没加“/”
<forward name="list" path="/jsp/admin/adminquestion.do?status=list"></forward>
加个过滤器验证用户的登陆
public class AdminLoginFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
因为Session属于HTTP范畴,所以ServletRequest要转换成HttpServletRequest
HttpServletRequest req=(HttpServletRequest)arg0;
if(req.getSession().getAttribute("adminid")!=null){
arg2.doFilter(arg0, arg1);
}else{
req.getRequestDispatcher("forward.htm").forward(arg0, arg1);
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
Web.xml
<filter>
<filter-name>adminlogin</filter-name>
<filter-class>
dj.fantlam.myssh.filter.AdminLoginFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>adminlogin</filter-name>
<url-pattern>/jsp/admin/*</url-pattern>
</filter-mapping>
补充一些中文乱码解决问题
关于URL传参乱码的问题,有时候就算有过滤器也一样会出乱码。
解决方案 在tomcat server.xml加上
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8888" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
eclipse插件
http://propedit.sourceforge.jp/index_en.html
最后说下程序的打包
可以直接用命令 jar –cvf MySSH.war(生成的war文件)SSH(文件夹)
也可以用myeclipse帮我们打包
MySSH.war可以直接部署到tomcat下提供访问。